.htaccess Dosyası Hakkında Her Şey Ve Kullanım Rehberi

Web sitelerinin yönetimi çoğu zaman daha da karmaşık hale gelebilir. Ancak, .htaccess dosyası gibi bazı araçlar sayesinde, web sitenizin performansını artırabilir ve kullanıcı deneyimini geliştirebilirsiniz. Bu dosya, Apache web sunucularında kullanılan bir yapılandırma dosyasıdır ve web sitenizdeki belirli klasörler veya dosyalar için özel yapılandırmalar yapmanızı sağlar. Bu yazıda, .htaccess dosyası nedir, nasıl oluşturulur ve düzenlenir sorularına yanıt bulacak ve bu dosyanın HTTP yönlendirmeleri, URL yeniden yazımı, erişim kontrolü, hotlink önleme ve sıkıştırma gibi birçok farklı işlem için nasıl kullanılabileceğini öğreneceksiniz.

Htaccess dosyası nedir ve ne işe yarar?

.htaccess

.htaccess dosyası, Apache web sunucularında kullanılan bir yapılandırma dosyasıdır. Bu dosya, web sitenizdeki belirli klasörler veya dosyalar için özel yapılandırmalar yapmanıza olanak sağlar.

.htaccess dosyası kullanarak, web sitenizin performansını artırabilir ve kullanıcı deneyimini iyileştirebilirsiniz. Örneğin, bu dosya ile HTTP yönlendirmeleri, URL yeniden yazımı, erişim kontrolü, hotlink önleme ve sıkıştırma gibi işlemleri gerçekleştirebilirsiniz. Bu sayede web sitenizi daha güvenli hale getirebilir, SEO uyumlu hale getirebilir, yüklenme sürelerini azaltabilir ve daha fazla ziyaretçi çekebilirsiniz.

.htaccess dosyası, web sunucunuzun ana dizininde oluşturulabilir. Ancak, belirli bir klasör veya dosya için özel yapılandırmalar yapmak istiyorsanız, .htaccess dosyasını ilgili klasöre yerleştirmeniz gerekir. Dosya adına “.htaccess” eklemeyi unutmayın ve dosyayı “UTF-8” formatında kaydedin. Daha sonra, dosyayı düzenleyebilmek için herhangi bir metin editörü kullanabilirsiniz.

Htaccess dosyası nasıl oluşturulur ve düzenlenir?

.htaccess dosyasının oluşturulması ve düzenlenmesi oldukça kolaydır. İşlem adımları şöyle özetlenebilir:

  1. Herhangi bir metin editörü (Notepad, Sublime Text, VS Code gibi) açın.
  2. Yeni bir dosya oluşturun ve ismini “.htaccess” olarak kaydedin. Dosyanın adının başına nokta eklemek önemlidir.
  3. Dosyayı UTF-8 formatında kaydedin ve dosya tipini “Tüm Dosyalar” olarak seçin.
  4. .htaccess dosyasını web sitenizin ana dizinine veya belirli klasörlere yerleştirin.
  5. Düzenlemek istediğiniz .htaccess dosyasını açın ve kodları ekleyin.

Örnek bir .htaccess dosyası aşağıdaki gibi olabilir:

Copy CodeRewriteEngine On
RewriteBase /

# URL yeniden yazma örneği
RewriteRule ^blog/(.*)$ /post.php?slug=$1 [L]

# Hotlink önleme örneği
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Bu örnekte, mod_rewrite özelliği etkinleştirilmiş ve “/blog/” ile başlayan URL’ler “/post.php” sayfasına yönlendirilmiştir. Ayrıca hotlink önleme işlemi de yapılmıştır. Bu sayede diğer sitelerin web sitenizdeki görselleri kullanmasının önüne geçilmiştir.

Htaccess dosyasında 301 yönlendirme nasıl yapılır?

301 yönlendirmesi, bir URL’nin kalıcı olarak diğer bir URL’ye yönlendirildiği anlamına gelir. Bu, ziyaretçilerin veya arama motorlarının eski URL’ye girdiğinde otomatik olarak yeni URL’ye yönlendirilmesini sağlar.

301 yönlendirmesi yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

Redirect 301 /eski-url https://yeni-url.com

Bu komut, “/eski-url” adresine yönlendirme yapacağını ve bu URL’nin “https://yeni-url.com” adresine yönlendirileceğini belirtir.

Örneğin, eğer web sitenizdeki “example.com/eski-sayfa.html” adresini “example.com/yeni-sayfa.html” adresine yönlendirmek istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

Redirect 301 /eski-sayfa.html http://example.com/yeni-sayfa.html

Bu sayede ziyaretçileriniz veya arama motorları, “example.com/eski-sayfa.html” adresine girdiğinde otomatik olarak “example.com/yeni-sayfa.html” adresine yönlendirilecektir.

Htaccess dosyasında 302 yönlendirme nasıl yapılır?

302 yönlendirmesi, bir URL’nin geçici olarak başka bir URL’ye yönlendirildiği anlamına gelir. Bu, ziyaretçilerin veya arama motorlarının eski URL’ye girdiğinde geçici olarak yeni URL’ye yönlendirilmesini sağlar.

302 yönlendirmesi yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

Redirect 302 /eski-url https://yeni-url.com

Bu komut, “/eski-url” adresine yönlendirme yapacağını ve bu URL’nin “https://yeni-url.com” adresine geçici olarak yönlendirileceğini belirtir.

Örneğin, eğer web sitenizdeki “example.com/eski-sayfa.html” adresini geçici olarak “example.com/yeni-sayfa.html” adresine yönlendirmek istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

Redirect 302 /eski-sayfa.html http://example.com/yeni-sayfa.html

Bu sayede ziyaretçileriniz veya arama motorları, “example.com/eski-sayfa.html” adresine girdiğinde geçici olarak “example.com/yeni-sayfa.html” adresine yönlendirilecektir.

Htaccess dosyasında 302 yönlendirme nasıl yapılır?

404 hata sayfası, web sitenizde bulunmayan bir sayfaya erişildiğinde görüntülenir. Bu durumda ziyaretçilerinize bir hata mesajı yerine özelleştirilmiş bir sayfa göstermek isteyebilirsiniz. Bu amaçla .htaccess dosyasında 404 yönlendirmesi yapabilirsiniz.

404 yönlendirmesi yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

ErrorDocument 404 /404-hata-sayfasi.html

Bu komut, 404 hatası meydana geldiğinde “/404-hata-sayfasi.html” dosyasına yönlendirme yapacağını belirtir. Bu dosyayı oluşturarak, ziyaretçilerinizin karşılaştığı hata sayfasını özelleştirebilirsiniz.

Örneğin, eğer web sitenizde “example.com/yok-sayfa.html” adresi için 404 yönlendirmesi yapmak istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

ErrorDocument 404 /404-error.html

Bu sayede, “example.com/yok-sayfa.html” adresine girdiğinde ziyaretçileriniz “/404-error.html” sayfasına yönlendirilecektir ve özelleştirilmiş bir hata sayfası görüntülenecektir.

Htaccess dosyasında URL yeniden yazma nasıl yapılır?

URL yeniden yazma, web sitenizdeki URL’leri özelleştirmenize ve daha anlaşılır hale getirmenize olanak sağlar. Bu işlemi mod_rewrite ile yapabilirsiniz.

URL yeniden yazma yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

RewriteEngine On
RewriteRule ^eski-url$ /yeni-url [L,R=301]

Bu komut, “/eski-url” adresine erişildiğinde “https://www.example.com/yeni-url” adresine yönlendirme yapacağını belirtir. “R=301” kodu ise 301 yönlendirmesi yapılacağını ifade eder.

Örneğin, eğer web sitenizdeki “example.com/hakkimizda.php” adresini “example.com/hakkimizda” şeklinde göstermek istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

RewriteEngine On
RewriteBase /
RewriteRule ^hakkimizda$ /hakkimizda.php [L]

Bu sayede ziyaretçileriniz “example.com/hakkimizda” adresine girdiğinde otomatik olarak “example.com/hakkimizda.php” sayfasına yönlendirilecektir ve görüntülenen URL daha anlaşılır hale gelecektir.

Htaccess dosyasında IP adresi ile erişim kısıtlama nasıl yapılır?

.htaccess dosyası kullanarak web sitenize belirli IP adreslerinden erişimi kısıtlayabilirsiniz. Böylece sadece belirlediğiniz IP adreslerinden erişim sağlanması mümkün olur.

IP adresi ile erişim kısıtlaması yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

order deny,allow
deny from all
allow from 111.222.333.444 (izin vermek istediğiniz IP adresini yazın)

Bu komutlar, tüm erişimleri engelleyecek ve sadece belirtilen IP adresinden erişime izin verecektir.

Eğer birden fazla IP adresine izin vermek istiyorsanız, her IP adresi için bir “allow from” satırı ekleyebilirsiniz.

order deny,allow
deny from all
allow from 111.222.333.444
allow from 555.666.777.888

Bu örnekte, hem “111.222.333.444” hem de “555.666.777.888” IP adreslerine izin verilecektir.

Ayrıca, tam tersi bir durumda yani belirli IP adreslerini engellemek istediğinizde “deny from” kullanabilirsiniz.

Örneğin, eğer “example.com/admin” sayfasına erişimi sadece belirli IP adreslerinden sağlamak istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

order deny,allow
deny from all
allow from 111.222.333.444
allow from 555.666.777.888

<Files "admin">
    order deny,allow
    deny from all
    allow from 111.222.333.444
    allow from 555.666.777.888
</Files>

Bu sayede, sadece belirtilen IP adreslerinden “/admin” sayfasına erişim sağlanabilecektir.

Htaccess dosyasında hotlink önleme nasıl yapılır?

Hotlink, başka bir web sitesinin kaynaklarını (örneğin, resimlerini) doğrudan kendi web sitenizde kullanmasıdır. Bu, bandwidth kullanımınızı arttırabilir ve web sitenizin yavaşlamasına neden olabilir. .htaccess dosyasını kullanarak hotlink önleme yapabilirsiniz.

Hotlink önleme yapmak için .htaccess dosyasına aşağıdaki kodları ekleyebilirsiniz:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Bu komutlar, JPEG, JPG, PNG ve GIF uzantılı dosyaların hotlink’lerini engelleyecektir. İlk satır mod_rewrite özelliğini etkinleştirir. İkinci satırda HTTP_REFERER değerinin boş olmadığını kontrol eder, yani referans olan site var demektir. Üçüncü satırda ise, kontrol edilen referans URL’sinin ana siteden gelmediğinden emin olur. Dördüncü satırda ise, belirtilen dosya türleri için hotlink’leri engeller.

Eğer sadece belirli bir dosya türünü engellemek istiyorsanız, son satırdaki dosya türlerini değiştirebilirsiniz. Ayrıca “example.com” yerine kendi domain adınızı yazmalısınız.

Örneğin, eğer web sitenizdeki “example.com/resimler/” klasöründeki tüm resimlere hotlink önleme yapmak istiyorsanız, .htaccess dosyanıza şu kodları ekleyebilirsiniz:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule ^resimler/.*\.(jpg|jpeg|png|gif)$ - [NC,F,L]

Bu sayede, sadece “/resimler/” klasöründeki resimler için hotlink önleme yapılacaktır.

Htaccess dosyasında gzip sıkıştırma nasıl etkinleştirilir?

Gzip sıkıştırma, web sitenizdeki dosyaların boyutunu azaltarak sayfa yükleme hızını arttırır. Bu özelliği .htaccess dosyasına ekleyerek etkinleştirebilirsiniz.

Gzip sıkıştırma yapmak için aşağıdaki kodları .htaccess dosyanıza ekleyebilirsiniz:

<IfModule mod_deflate.c>
    # Enable compression
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

    # Exclude some uncompressible formats
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>

Bu kodlar, web sitenizdeki HTML, CSS, JS ve XML dosyalarının gzip sıkıştırmasını etkinleştirecektir. Ayrıca GIF, JPEG ve PNG gibi zaten sıkıştırılmış dosyaların tekrar sıkıştırılmasını engelleyecek bir kural da eklenmiştir.

Eğer web sitenizde başka tür dosyalar da varsa, bunları da yukarıdaki gibi listeye ekleyebilirsiniz. Ayrıca, “no-gzip” kuralını uygulamak istemediğiniz dosya türlerini de yukarıdaki listeden çıkarabilirsiniz.

Not: Bu özellik, sunucunuzda mod_deflate modülünün yüklü olması gerektiğini unutmayın.

Htaccess dosyasında cache kontrolü nasıl yapılır?

Cache kontrolü, web sitenizdeki sayfaların ziyaretçilerin bilgisayarlarında ya da tarayıcılarında önbelleğe alınmasını ve bu sayede daha hızlı yüklenmesini sağlar. Bu işlemi .htaccess dosyası kullanarak yapabilirsiniz.

Cache kontrolü yapmak için aşağıdaki kodları .htaccess dosyanıza ekleyebilirsiniz:

# Enable caching
ExpiresActive On

# Set default cache duration to 1 month
ExpiresDefault "access plus 1 month"

# Cache CSS and JS files for 1 year
<FilesMatch "\.(css|js)$">
    ExpiresDefault "access plus 1 year"
    Header set Cache-Control "public"
</FilesMatch>

# Cache images, favicon, and PDFs for 1 month
<FilesMatch "\.(ico|gif|jpg|jpeg|png|pdf)$">
    ExpiresDefault "access plus 1 month"
    Header set Cache-Control "public"
</FilesMatch>

Bu kodlar, web sitenizdeki CSS ve JS dosyalarını 1 yıl, resimler ve PDF dosyalarını ise 1 ay boyunca önbelleğe alacaktır. varsayılan olarak tüm diğer dosyalar 1 ay boyunca önbelleğe alınır.

Ayrıca, “Header set Cache-Control” satırı ile de önbellek kontrolü yapabilirsiniz. “public” seçeneği, önbelleğe alma işleminin herkes tarafından yapılmasına izin verir.

Sonuç

pexels christina morillo 1181271

Sonuç olarak, .htaccess dosyası web sitesi yöneticileri ve geliştiricileri için oldukça önemlidir. Bu dosya sayesinde birçok farklı işlem gerçekleştirilebilir ve web sitenizin performansı, güvenliği ve kullanıcı deneyimi artırılabilir. Bu rehberimizde .htaccess dosyasının ne olduğunu, nasıl oluşturulduğunu ve hangi işlemleri yapabileceğini detaylı bir şekilde ele aldık. Umarım bu rehberimiz sizin için faydalı olmuştur ve web sitenizi daha iyi bir hale getirmek için bu dosyayı etkin bir şekilde kullanabilirsiniz.

Eğer web sitenizde önbellekten hariç tutmak istediğiniz dosyalar varsa, bu dosyaların uzantılarını yukarıdaki kodlarda belirttiğim “FilesMatch” satırlarına ekleyebilirsiniz.

Not: Eğer web sitenizi sık sık güncelliyorsanız, önbellek süresini kısaltmanız ve ziyaretçilerinizin daha hızlı güncellemeleri görmesini sağlamanız önerilir.

Diğer yazılarımızdan bazılarına Backlink Nedir ? ya da Mobil SEO Stratejileri: Kullanıcı Deneyimini Geliştirmek İçin 6 Adım adlı yazılarımızı okuyabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.