.htaccess Nedir? En Faydalı .htaccess Kodları ve Kullanım Rehberi

Meta Açıklaması: .htaccess dosyası nedir, ne işe yarar ve nasıl kullanılır? 301 yönlendirme, HTTPS zorunluluğu, www yönlendirmesi, IP engelleme, hotlink koruması ve daha birçok faydalı .htaccess kodunu örneklerle öğrenin.

.htaccess Nedir?

.htaccess (Hypertext Access), Apache web sunucularında kullanılan özel bir yapılandırma dosyasıdır. Bu dosya sayesinde web sitenizin davranışını sunucu seviyesinde değiştirebilir, yönlendirmeler yapabilir, güvenlik önlemleri alabilir ve SEO açısından önemli ayarlar gerçekleştirebilirsiniz.

Özellikle Linux tabanlı hosting kullanan web sitelerinde en sık kullanılan dosyalardan biridir.


.htaccess Dosyası Nerede Bulunur?

Genellikle web sitenizin ana dizininde yer alır.

Örnek:

public_html/.htaccess

veya

htdocs/.htaccess

Dosya gizli olduğundan FTP programlarında Gizli Dosyaları Göster (Show Hidden Files) seçeneğini aktif etmeniz gerekebilir.


.htaccess Dosyası Nasıl Oluşturulur?

Not Defteri açın.

Yeni dosya oluşturun.

Dosya adını;

.htaccess

olarak kaydedin.

Daha sonra hosting hesabınızın ana dizinine yükleyin.


HTTPS’ye Otomatik Yönlendirme

SSL sertifikası kullanan tüm web sitelerinde önerilir.

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Bu kod sayesinde tüm HTTP bağlantıları otomatik olarak HTTPS sürümüne yönlendirilir.


WWW’den WWW’siz Adrese Yönlendirme

Örneğin;

www.siteadi.com

adresini;

siteadi.com

adresine yönlendirmek için:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

WWW’siz Adresi WWW’ye Yönlendirme

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]

RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

301 Kalıcı Yönlendirme

Bir sayfanın adresi değiştiyse aşağıdaki kod kullanılabilir.

Redirect 301 /eski-sayfa.html https://siteadi.com/yeni-sayfa.html

Google eski URL’nin değerini büyük ölçüde yeni URL’ye aktarabilir.


302 Geçici Yönlendirme

Redirect 302 /kampanya.html https://siteadi.com/yeni-kampanya.html

Geçici kampanyalar için uygundur.


Belirli IP Adresini Engelleme

<RequireAll>

Require all granted

Require not ip 192.168.1.20

</RequireAll>

Birden fazla IP de ekleyebilirsiniz.


Belirli Ülkelere Erişimi Engelleme

Bu işlem doğrudan .htaccess ile değil, sunucuda ilgili modüller veya güvenlik servisleri kullanılarak yapılır. Birçok hosting firması bu özellik için ek modüller veya güvenlik araçları sunmaktadır.


Hotlink Koruması

Başka sitelerin görsellerinizi kullanmasını engelleyebilirsiniz.

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^

RewriteCond %{HTTP_REFERER} !^https://(www\.)?siteadi.com [NC]

RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F]

Dizin Listelemeyi Kapatma

Sunucuda klasör içeriklerinin görüntülenmesini engeller.

Options -Indexes

PHP Dosyalarını Gizleme

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+(.+)\.php [NC]

RewriteRule ^ /%1 [R=301,L]

Artık;

siteadi.com/hakkimizda

şeklinde açılabilir.


Hata Sayfaları Tanımlama

404 Sayfası

ErrorDocument 404 /404.html

500 Sayfası

ErrorDocument 500 /500.html

403 Sayfası

ErrorDocument 403 /403.html

Gzip Sıkıştırma

Sayfaların daha hızlı yüklenmesini sağlayabilir.

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/javascript

</IfModule>

Tarayıcı Önbellekleme

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType image/jpeg "access plus 1 year"

ExpiresByType image/png "access plus 1 year"

ExpiresByType text/css "access plus 1 month"

ExpiresByType application/javascript "access plus 1 month"

</IfModule>

Bu ayarlar tekrar ziyaretlerde sayfanın daha hızlı yüklenmesine yardımcı olabilir.


XML Sitemap Yönlendirmesi

RewriteRule ^sitemap.xml$ sitemap_index.xml [L]

Dosya Türlerini Engelleme

<FilesMatch "\.(ini|log|bak|config)$">

Require all denied

</FilesMatch>

Robots.txt Dosyasını Koruma

<Files robots.txt>

Require all granted

</Files>

Güvenlik Başlıkları

<IfModule mod_headers.c>

Header always set X-Frame-Options SAMEORIGIN

Header always set X-Content-Type-Options nosniff

Header always set Referrer-Policy strict-origin-when-cross-origin

</IfModule>

Bu başlıklar belirli web güvenliği risklerine karşı ek koruma sağlayabilir.


.htaccess Kullanırken Dikkat Edilmesi Gerekenler

  • Değişiklik yapmadan önce mutlaka yedek alın.
  • Küçük bir yazım hatası sitenin geçici olarak erişilemez hale gelmesine neden olabilir.
  • Her değişiklikten sonra siteyi test edin.
  • Kullandığınız Apache sürümü ve etkin modüllerin kuralları desteklediğinden emin olun.
  • Nginx sunucularında .htaccess kullanılmaz; benzer ayarlar sunucu yapılandırmasında yapılır.

SEO Açısından .htaccess’in Önemi

Doğru yapılandırılmış bir .htaccess dosyası;

  • Tek bir URL sürümünün kullanılmasına yardımcı olur.
  • HTTPS kullanımını zorunlu hale getirebilir.
  • Gereksiz yönlendirme zincirlerini azaltabilir.
  • Özel hata sayfalarıyla kullanıcı deneyimini iyileştirebilir.
  • Gzip ve önbellekleme ile sayfa performansını artırmaya katkı sağlayabilir.

Bu ayarlar dolaylı olarak teknik SEO çalışmalarını destekler.


Sık Sorulan Sorular

.htaccess her hostingde çalışır mı?

Hayır. Genellikle Apache web sunucusunda çalışır. Nginx kullanan sunucularda farklı yapılandırma yöntemleri uygulanır.

.htaccess silinirse ne olur?

Yönlendirmeler, güvenlik kuralları ve diğer yapılandırmalar devre dışı kalabilir. Bazı web siteleri düzgün çalışmayabilir.

Yanlış kod eklersem ne olur?

Sunucu yapılandırmasına bağlı olarak 500 Internal Server Error gibi hatalar alabilirsiniz. Bu nedenle değişikliklerden önce yedek almak önemlidir.

.htaccess SEO’yu etkiler mi?

Evet. Özellikle 301 yönlendirmeleri, HTTPS kullanımı, önbellekleme ve doğru URL yönetimi teknik SEO açısından önemli katkılar sağlayabilir.

Sonuç

.htaccess, Apache tabanlı web siteleri için en güçlü yapılandırma dosyalarından biridir. Doğru kullanıldığında güvenlik, performans ve SEO açısından önemli avantajlar sunar. Ancak yapılan her değişikliğin dikkatle test edilmesi ve canlı ortama alınmadan önce yedeklenmesi önerilir.