htaccess dosyası nedir, nasıl düzenlenir

4
5101

Daha önce yazdığım yazıları karıştırırken farkettim. Sunucuda yada hosting içerisinde bulunan (Apache destekli) ve sunucu içerisinde bazı özellikleri kontrol etmemizi sağlayan htaccess dosyası nedir, nasıl düzenlenir gibi basit iki soruya bu yazıyla cevap vermeye çalışacağım.

htaccess dosyası nedir?

.htaccess şeklinde hosting ana dizininde bulunan ve yukarıda dediğim gibi sunucunuzun çalışması ile ilgili bazı ayarlar sağlayan bir dosyadır.

WordPress sitesi için ne gibi işler yapabiliriz?

Diğer tüm siteler için olduğu gibi wordpress sitemiz için de temel olarak güvenlik, seo, dosya koruma, site hızını ayarlama gibi konularda yardımcı olacaktır. Çok detaylı işlemlerin yapılabildiği bu dosya içerisinde temel kullanımları aşağıda örnekleri ile gösterdim.

Nasıl düzenlenir?

Bu dosyaya kullandığınız hosting paneli içerisinde bulunan “Dosya İşlemleri” menüsünden ulaşabilirsiniz. Aynı zamanda daha önce yazdığım panel üzerinden htaccess düzenleme yazısında anlattığım gibi WordPress Yönetici Paneli’nden de bu dosyayı düzenleyebilirsiniz.

Önemli not: Lütfen düzenleme yapmadan önce .htaccess dosyasının yedeğini alınız!

Şimdi gelelim bu dosya içerisinden yapılacak temel işlevlere;

Permalink ayarı

Permalink yani kalıcı bağlantı ayarları SEO açısından son derece önemlidir. Bu ayarların WordPress içerisinden nasıl yapıldığını buradaki yazımda anlattım. Şimdi dosya içerisinde en başta bu ayarları ekleyelim.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

.htaccess dosyasını koruma

Tabiki bu dosyanın dışarıdan erişimini engellemek ve korumak gerekir, bunun için yapılacak olan ayarlar da şu şekilde:

# .htaccess Koruma
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

wp-config.php dosyasını koruma

Sitemizin veri tabanı bağlantısı gibi önemli bazı ayarlarının bulunduğu dosya olan wp-config.php erişimine de önlem almak gerekir.

# WP-Config Koruma
<files wp-config.php>
order allow,deny
deny from all
</files>

Site dizin listesine erişim

Site dosyalarımızın bulunduğu ana dizine direkt erişimi şu şekilde engelleyebilirsiniz.

# Dizin listeleme engelleme
Options All -Indexes

Gzip sıkıştırmayı etkinleştirme

Hep duyduğunuz ve SEO için önemli olan Gzip sıkıştırma işlemini de bu dosya içerisinden yapabilirsiniz. Gzip sıkıştırma ne işe yarar sorusunun cevabı ise burayı tıklayıp yazıda!

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Tarayıcı hatalarını uzaklaştır (çok eski tarayıcılar için gerekli)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

Leverage browser caching ayarları

Leverage browser caching ne derseniz burayı tıklayıp yazdığım yazıdan bakabilirsiniz. Bu ayarları da şu şekilde yapabiliriz.

# Cache sonlandırma tarihi
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

SSL yönlendirme

Sitemizde https şeklinde yani güvenli bağlantı kullanıyorsak ve http şeklinde gelecek bağlantıların tümünü yönlendirmek istersek şu kodu ekleyebiliriz.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

Daha onlarca işlevi bulunan ve zaman zaman benim yazılarımda da değindiğim konulara htaccess etiketi içerisinden erişebilirsiniz. İşinize yarayacağı ve arkadaşlarınızla paylaşılacağı umuduyla iyi bloglamalar…

Paylaşmak önemsemektir!