Bir `.htaccess` değişikliğinin hemen ardından oluşan 500 hatası çoğunlukla tanınmayan directive, izin verilmeyen bağlam, bozuk düzenli ifade, PHP-FPM ile uyumsuz `php_value` veya dosyaya karışan görünmeyen karakterlerden kaynaklanır. İlk işlem dosyayı silmek değil, yedekleyip Apache hata logundaki gerçek satırı bulmaktır.
500 Internal Server Error
AH00526: Syntax error in .htaccess
Invalid command 'RewriteEngine'
RewriteRule: bad flag delimiters
php_value not allowed hereBir `.htaccess` değişikliğinin hemen ardından oluşan 500 hatası çoğunlukla tanınmayan directive, izin verilmeyen bağlam, bozuk düzenli ifade, PHP-FPM ile uyumsuz `php_value` veya dosyaya karışan görünmeyen karakterlerden kaynaklanır. İlk işlem dosyayı silmek değil, yedekleyip Apache hata logundaki gerçek satırı bulmaktır.
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.
Canlı sitede `.htaccess` dosyasını yedeksiz tamamen silmeyin.
Anlamı: Apache directive’i tanımıyor veya modül yüklenmemiş.
Muhtemel neden: mod_rewrite kapalı ya da sunucu NGINX-only.
Anlamı: RewriteRule bayrak bölümü geçersiz.
Muhtemel neden: Eksik köşeli parantez veya hatalı virgül.
Anlamı: PHP ayarı kullanılan handler’da `.htaccess` üzerinden kabul edilmiyor.
Muhtemel neden: PHP-FPM, CGI veya LSAPI kullanımı.
Anlamı: Options directive’i bu dizinde yasak.
Muhtemel neden: AllowOverride Options kapalı.
Anlamı: mod_rewrite directive’i dizin bağlamında izinli değil.
Muhtemel neden: AllowOverride FileInfo kapalı.
Anlamı: Blok etiketi tamamlanmamış.
Muhtemel neden: Eksik kapanış veya kopyalama hatası.
Anlamı: Sunucu directive’i yanlışlıkla `.htaccess` içine yazılmış.
Muhtemel neden: VirtualHost örneğinin doğrudan kopyalanması.
Anlamı: Hata alt dizindeki `.htaccess` kapsamıyla sınırlı.
Muhtemel neden: Alt klasörde ayrı dosya veya miras alınan kural.
Bu ifadeyle eşleşen kayıt bulunamadı.
cp .htaccess .htaccess.bak.$(date +%Y%m%d-%H%M%S)Değişiklik öncesi geri dönüş kopyası oluşturur.
apachectl -tAna Apache yapılandırmasındaki sözdizimi durumunu gösterir; `.htaccess` hatası çoğu zaman istek sırasında loga düşer.
tail -n 120 /var/log/apache2/error.log 2>/dev/null || tail -n 120 /usr/local/apache/logs/error_log 2>/dev/null || tail -n 120 /var/log/httpd/error_logUbuntu, cPanel ve AlmaLinux yaygın hata loglarını kontrol eder.
grep -nE 'AllowOverride|<Directory|php_value|php_flag|RewriteRule|Options|Require|Order|Deny|Allow' .htaccess500 üretme ihtimali yüksek satırları numarasıyla gösterir.
file -bi .htaccess && xxd -l 16 .htaccessDosya kodlamasını ve başlangıçtaki BOM/görünmeyen baytları gösterir.
stat -c '%a %U:%G %n' .htaccess 2>/dev/null || stat -f '%Lp %Su:%Sg %N' .htaccessDosyanın izin ve sahiplik bilgisini gösterir.
AllowOverride All
RewriteEngine OnRewriteEngine OnRewriteRule ^eski$ /yeni [R=301,LRewriteRule ^eski$ /yeni [R=301,L]php_value memory_limit 512Mmemory_limit=512MOrder deny,allow
Deny from allRequire all deniedmod_rewrite ve AllowOverride çoğunlukla site VirtualHost içindeki `<Directory>` bölümünden yönetilir.
cPanel EA4 ve LiteSpeed Apache uyumluluğu kullanır; PHP handler’a göre `php_value` davranışı değişir.
Apache arkasında NGINX proxy varsa `.htaccess` uygulanabilir; NGINX-only yapıda uygulanmaz.
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.