Ana sayfanız normal açılıyor, ama bir yazıya ya da sayfaya tıkladığınızda ‘404 Not Found’ ekranı geliyor. Linkler aslında doğru, içerik de yerinde duruyor, yine de bulunamıyor deniyor. Bu genelde kalıcı bağlantı ayarını değiştirdikten ya da siteyi başka bir sunucuya taşıdıktan sonra ortaya çıkar.
Ana sayfanın açılıp alt sayfaların açılmaması ilk anda kafa karıştırır. Oysa bu ayrım tam da sorunun nerede olduğunu ele verir: içerik duruyor, eksik olan sadece ona giden yolu tarif eden kurallar. Bunu bilmek çözümü doğru yere, yani yönlendirme tarafına odaklamanızı sağlar.
Neden oluyor
WordPress, ‘örnek-yazi’ gibi okunur adresleri çalıştırabilmek için gelen isteği arkada doğru dosyaya yönlendirmek zorundadır. Apache sunucularda bu yönlendirmeyi .htaccess dosyasındaki kurallar yapar. Kalıcı bağlantı yapısını değiştirdiğinizde ya da site taşındığında bu kurallar güncel olmayabilir, silinmiş olabilir ya da .htaccess dosyası hiç yazılamamış olabilir. Ana sayfa tek bir giriş noktası olduğu için çalışır, ama alt sayfaların yönlendirmesi kurallara bağlı olduğundan hepsi 404 verir.
Nginx kullanan sunucularda .htaccess yoktur; yönlendirme sunucu yapılandırmasındaki kurallarla sağlanır. Oradaki kural eksikse ya da yanlışsa aynı 404 tablosu çıkar.
Adım adım çözüm
Apache tarafında ilk denenecek şey çok basit ve çoğu zaman tek başına yeterli. Panele girin, Ayarlar bölümündeki Kalıcı Bağlantılar sayfasını açın. Hiçbir ayarı değiştirmeden sayfanın altındaki Değişiklikleri Kaydet düğmesine basın. Bu işlem WordPress’e yönlendirme kurallarını yeniden yazdırır. .htaccess yazılabilir durumdaysa kurallar tazelenir ve sayfalar anında açılmaya başlar.
Kaydettiniz ama düzelmedi ise, muhtemelen WordPress .htaccess dosyasına yazamıyor. Bunu kontrol edin:
- FTP ile sitenizin kök dizinine gidin ve .htaccess dosyasını bulun. Baştaki nokta onu gizli yapar, gizli dosyaları göster seçeneğini açmanız gerekebilir.
- Dosyanın izninin yazmaya uygun olduğundan emin olun. 644 genelde uygundur. Yoksa WordPress kuralları güncelleyemez.
- Dosya hiç yoksa kendiniz oluşturabilirsiniz. WordPress’in standart yönlendirme kuralları belgelenmiştir; boş bir .htaccess oluşturup paneldeki Kalıcı Bağlantılar sayfasından tekrar Kaydet’e basarsanız WordPress içini kendisi doldurur.
Yönlendirmenin çalışması için Apache’de mod_rewrite modülünün açık olması gerekir. Kapalıysa .htaccess kuralları işlemez. Kendi sunucunuzu yönetiyorsanız bu modülü etkinleştirin; paylaşımlı hostingte genelde zaten açıktır, değilse destekten açmalarını isteyin.
Sunucunuz Nginx ise .htaccess çözümü işe yaramaz, çünkü Nginx bu dosyayı okumaz. Bu durumda yönlendirme kuralının sunucu yapılandırmasına eklenmesi gerekir. WordPress için gereken standart kural bellidir; onu sunucu yapılandırmanıza eklemek ya da hosting firmanızdan WordPress uyumlu yönlendirme kuralını tanımlamalarını istemek gerekir. Nginx’te değişiklik sonrası yapılandırmanın yeniden yüklenmesi gerektiğini unutmayın.
404 sorununun kalıcı bağlantıdan mı yoksa başka bir şeyden mi geldiğini ayırmak için küçük bir test yapabilirsiniz. Kalıcı Bağlantılar ayarını geçici olarak sade yapıya, yani yazı kimliğine dayalı olana çevirip Kaydet’e basın. Sayfalar bu haliyle açılıyorsa sorun kesinlikle yönlendirme kurallarındadır ve .htaccess ya da sunucu yapılandırması üzerinde yoğunlaşmanız gerektiğini anlarsınız. Açılmıyorsa mesele daha derinde, örneğin taşıma sırasında eksik kalan içerikte olabilir. Testten sonra istediğiniz bağlantı yapısına geri dönmeyi unutmayın.
Tekrar yaşamamak için
Kalıcı bağlantı yapısını değiştirdiğinizde ya da site taşıdığınızda, ilk işiniz Kalıcı Bağlantılar sayfasından bir kez Kaydet’e basmak olsun. Bu küçük adım kuralları yeniler ve çoğu 404 dalgasını baştan önler. .htaccess dosyasının izinlerini yazılabilir tutmak da WordPress’in kendi işini yapabilmesini sağlar. Nginx’teyseniz yönlendirme kuralının yapılandırmada olduğundan emin olun, bu kural kalıcıdır ve bir kez doğru kurulunca uğraştırmaz.
Tüm sayfaların birden kaybolması insanı telaşlandırıyor ama içerik yerinde, sadece yol tarifi eksik. Sunucunuzun Apache mı Nginx mi olduğunu söylerseniz doğru adımı birlikte netleştirebiliriz.
Bu işleri kendiniz yapmak yerine profesyonel destek isterseniz, WordPress bakım ve teknik destek hizmetime göz atabilirsiniz.
Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri