Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
.htaccess değişikliğinden hemen sonra HTTP 500 alıyorsanız sorun genellikle hatalı sözdizimi, sunucuda etkin olmayan bir Apache modülü, izin verilmeyen bir yönerge veya hatalı yönlendirme döngüsüdür. Önce isteğin zamanını Apache hata günlüğüyle eşleştirin; ardından son değişikliği çalışan kopyayla karşılaştırıp yalnızca hatalı bölümü düzeltin. Canlı sitede tüm dosyayı devre dışı bırakmak erişim kısıtlamalarını da kaldırabilir.

İlk teşhis: Hata gerçekten.htaccess kaynaklı mı?​

  1. Hata veren URL’yi ve hata zamanını not edin; ilgili alan adının Apache hata günlüğünü açın.
  2. Dosyayı değiştirmeden önce yerel bilgisayarınıza veya web üzerinden erişilemeyen bir konuma geri dönüş kopyası alın. Web köküne açık bir yedek uzantısı bırakmayın.
  3. Günlükte bildirilen dosya, satır ve yönergeyi son değişiklikle karşılaştırın. Dosyanın üst dizinlerdeki kurallardan etkilenebileceğini unutmayın.
  4. Yalnızca son hatalı değişikliği geri alın veya doğrulanmış çalışan kopyaya dönün; kimlik doğrulama ve erişim kurallarını topluca kaldırmayın.
  5. Aynı isteği yeniden yapın ve yeni günlük kaydını kontrol edin. Kuralları bölüm bölüm ayırmak gerekiyorsa bunu erişimi kısıtlı bir test kopyasında yapın.
Sorun PHP uygulamasından veya sanal host yapılandırmasından da kaynaklanabilir. 500 yanıtı tek başına .htaccess hatasını kanıtlamaz; hata günlüğündeki bileşen ve dosya yolunu esas alın.

En sık nedenler ve doğru karar​

BelirtiMuhtemel nedenUygulanacak karar
Değişiklikten hemen sonra 500Sözdizimi hatası veya hatalı tırnakSon eklenen satırı ve bir önceki satırı kontrol edin
“not allowed here” benzeri kayıtAllowOverride veya AllowOverrideList kısıtlamasıHosting yöneticisinden ilgili yönergeye izin verilmesini isteyin
Rewrite satırlarından sonra 500mod_rewrite eksikliği, yanlış bayrak veya döngüKuralı tek başına test edin ve yönlendirme hedefini inceleyin
Her istekte tekrar tekrar yönlenmeKural kendi hedefini yeniden yakalıyorİstisna kuralı ekleyin veya hedef koşulunu daraltın
Son değişiklik geri alındı, log hâlâ boşYanlış log dosyası veya üst dizindeki kuralVhost logunu ve üst dizinlerdeki .htaccess dosyalarını kontrol edin
Apache, .htaccess içinde kullanılan yönergeleri ana yapılandırmadaki kurallara göre değerlendirir. Bu nedenle bir yönergenin Apache tarafından tanınması tek başına yeterli değildir; bulunduğu dizin için ilgili AllowOverride sınıfı veya AllowOverrideList izni de verilmiş olmalıdır.

İçeriği güvenli biçimde daraltma​


Günlük mesajını üç parçaya ayırın: hatanın bildirildiği dosya, yönerge adı ve gerekçe. Örneğin varsayımsal bir Invalid command RewriteEngine mesajında önce modülün kullanılabilirliğini; not allowed here mesajında ise yönergenin bu bağlamdaki izinlerini araştırırsınız. Bunlar gerçek bir sunucudan alınmış test sonuçları değil, mesajları yorumlama örnekleridir.

Dosyayı yalnızca bir DirectoryIndex satırına indirip ana sayfanın açılmasını “dosya okunuyor” kanıtı saymayın. Aynı sayfa sunucunun varsayılan ayarlarıyla da açılabilir. Üstelik dosyanın geri kalanını kaldırmak güvenlik ve uygulama yönlendirmelerini bozar.

İzole test kopyasında kuralları küçük gruplarla deniyorsanız her denemeden sonra aynı URL’yi ve günlüğü kontrol edin. RewriteRule için RewriteEngine On, gerekli modül, desen, hedef ve bayrakların bağlamla uyumunu ayrı ayrı inceleyin.

Rewrite kurallarında hedef URL veya dosya yolu tekrar aynı kurala giriyorsa sonsuz iç yönlendirme oluşabilir. Belirti, tek bir isteğin çok sayıda iç yönlendirmeden sonra 500 ile sonuçlanmasıdır. Bu durumda hedefin zaten işlenmiş olduğunu belirleyen bir koşul veya istisna eklenmeli; rastgele yeni yönlendirme satırları eklenmemelidir.

Düzeltme sonrası kontrol​

  1. Hata veren URL’yi ve ana sayfayı ayrı ayrı test edin.
  2. HTTP ve HTTPS, www ve www olmayan varyantları kontrol edin.
  3. Bir statik dosyanın, örneğin /robots.txt veya mevcut bir görselin, kurallardan etkilenip etkilenmediğine bakın.
  4. Hata günlüğünde yeni bir kayıt oluşup oluşmadığını kontrol edin.
  5. Sorun çözülünce çalışan .htaccess dosyasının yedeğini alın ve sonraki değişiklikleri tek tek uygulayın.
Hata mesajı yönergenin tanınmadığını söylüyorsa ilgili Apache modülünün etkin olup olmadığını ve yönergenin .htaccess içinde kullanılmasına izin verilip verilmediğini hosting sağlayıcısından doğrulayın. Sözdizimi doğru olsa bile yetki veya modül eksikliği 500 üretebilir.

Sık sorulan sorular​


.htaccess dosyasını silmek kalıcı çözüm müdür?​


Hayır. Silmek yalnızca hatayı geçici olarak gizler ve yönlendirme, güvenlik veya uygulamanın URL kuralları kaybolabilir. Geri dönüş kopyasını erişime kapalı yerde saklayın ve güvenlik kurallarını koruyarak hatalı değişikliği düzeltin.

Hata günlüğüne erişemiyorsam ne yapmalıyım?​


Hosting panelindeki hata kayıtlarını kontrol edin ve destek ekibine tam alan adı, hata zamanı, istek yolu ve değişiklik yaptığınız dosyayı iletin. Günlük olmadan kuralları rastgele değiştirmek, asıl hatayı gizleyebilir.

Apache yapılandırma testi başarılıysa .htaccess hatasız mıdır?​


Hayır. Ana yapılandırmanın sözdizimi testi her istek yolundaki .htaccess dosyasını topluca doğrulamaz; bu dosyalar istek sırasında okunur. Hata veren yolu gerçekten isteyip o isteğin günlüğünü incelemek gerekir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic