Dosyanın hiçbir etkisi yoksa sorun çoğu zaman kuralın kendisinden önce `.htaccess` dosyasının okunup okunmadığıdır. `AllowOverride None`, kapalı `mod_rewrite`, yanlış document root, `.htaccess.txt` uzantısı, alt klasör bağlamı veya NGINX-only yapı kuralları tamamen etkisiz bırakabilir.
.htaccess ignored
RewriteRule not working
AllowOverride None
Module rewrite already enabled
404 Not FoundDosyanın hiçbir etkisi yoksa sorun çoğu zaman kuralın kendisinden önce `.htaccess` dosyasının okunup okunmadığıdır. `AllowOverride None`, kapalı `mod_rewrite`, yanlış document root, `.htaccess.txt` uzantısı, alt klasör bağlamı veya NGINX-only yapı kuralları tamamen etkisiz bırakabilir.
Apache, LiteSpeed, Plesk proxy veya NGINX-only yapıyı ayırmadan `.htaccess` sonucu beklemeyin.
Mevcut dosyayı tarihli yedekleyin; Apache/LiteSpeed hata kaydındaki directive ve satırı bulun.
Redirect, rewrite, header ve erişim kurallarını aynı anda topluca değiştirmeyin.
curl ile status, Location, Content-Type ve redirect sayısını ölçüp cache katmanlarını ayrıca kontrol edin.
Dosyanın okunduğunu kanıtlamak için canlı sitede kasıtlı syntax hatası oluşturmayın.
Anlamı: Dosyadaki hiçbir directive uygulanmıyor.
Muhtemel neden: AllowOverride None veya NGINX-only yapı.
Anlamı: Dosya okunuyor fakat rewrite eşleşmiyor.
Muhtemel neden: Yanlış regex, baştaki slash veya kural sırası.
Anlamı: RewriteEngine directive’i kullanılamıyor.
Muhtemel neden: Apache modülü yüklenmemiş.
Anlamı: Dosya gerçek `.htaccess` adıyla kaydedilmemiş.
Muhtemel neden: Windows uzantıları gizli.
Anlamı: Dosya istekleri karşılamayan klasörde.
Muhtemel neden: Addon domain, subdomain veya Plesk root farkı.
Anlamı: Per-directory RewriteRule pattern’i eşleşmiyor.
Muhtemel neden: Pattern `^/urun` ile başlıyor.
Anlamı: Mevcut dosya/klasör istisnası rewrite’ı atlıyor.
Muhtemel neden: `-f` veya `-d` koşulu.
Anlamı: `.htaccess` istek başına okunur; restart ana sorun değildir.
Muhtemel neden: Dosya okunmuyor veya cache katmanı var.
Bu ifadeyle eşleşen kayıt bulunamadı.
apachectl -M 2>/dev/null | grep -E 'rewrite|headers|expires|auth_basic'Gerekli Apache modüllerini listeler.
apachectl -SDomainlerin VirtualHost ve document root eşleşmesini gösterir.
grep -RniE 'AllowOverride|AllowOverrideList' /etc/apache2 /etc/httpd /usr/local/apache/conf 2>/dev/null | head -n 100Apache yapılandırmalarındaki override izinlerini bulur.
find . -maxdepth 3 -type f -iname '*htaccess*' -printf '%p\n' 2>/dev/null || find . -maxdepth 3 -type f -iname '*htaccess*' -printYanlış isimli veya alt klasördeki htaccess dosyalarını listeler.
curl -sS -o /dev/null -w 'HTTP:%{http_code} Redirects:%{num_redirects} Final:%{url_effective}\n' -L https://example.com/test-urlRewrite/redirect sonucunu dışarıdan test eder.
curl -sSI https://example.com | grep -iE '^server:|^via:|^x-powered-by:|^cf-ray:'Apache, LiteSpeed, NGINX veya proxy işaretlerini gösterir.
RewriteRule ^/urun/(.*)$ index.php?slug=$1 [L,QSA]RewriteRule ^urun/(.*)$ index.php?slug=$1 [L,QSA]RewriteRule ^eski$ /yeni [R=301,L]RewriteEngine On
RewriteRule ^eski$ /yeni [R=301,L]RewriteRule ^ index.php [L]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]RewriteEngine On
RewriteRule ^urun/(.*)$ index.php?slug=$1 [L,QSA]location / {
try_files $uri $uri/ /index.php?$query_string;
}Site VirtualHost içinde document root için `AllowOverride FileInfo` veya gerekli sınıflar açılmalıdır.
cPanel genellikle `.htaccess` desteğini açık sunar; addon domain root ve cache katmanı sık hata nedenidir.
Plesk’te Apache proxy modu ile NGINX-only modu farklı davranır.
Hayır. NGINX `.htaccess` dosyalarını okumaz. Kuralın `server` veya `location` yapılandırmasına çevrilmesi gerekir.
Genellikle hayır; Apache `.htaccess` dosyasını istek sırasında değerlendirir. Ancak sunucu VirtualHost, modül veya AllowOverride değişikliğinde reload/restart gerekir.
Mevcut dosyanın tarihli yedeği alınmalı, aktif document root doğrulanmalı ve değişiklik staging veya düşük trafikli zamanda test edilmelidir.
cPanel’de çoğunlukla `public_html`, Plesk’te `httpdocs` içindedir; addon domain ve subdomainlerin document root’u farklı olabilir.
LiteSpeed Apache uyumluluğu sayesinde kuralların büyük bölümünü destekler; bazı modül ve handler davranışları farklı olabilir.
Apache/LiteSpeed error log içindeki tam directive ve satır kaydıdır. Dosyayı rastgele silmek yerine loga göre geri alınmalıdır.
Alan adı, document root, proxy, WordPress ve sunucu yapısı doğrulanmadan doğrudan eklenmemelidir. Örnekler uyarlanıp test edilmelidir.
cPanel, Plesk, LiteSpeed, WordPress, özel PHP ve WISECP yapılarında yönlendirme, rewrite, CORS, erişim ve 500 hatalarını loglarla birlikte inceliyoruz.