Kısa cevap
Mevcut sayfalarda 404 hatası genellikle hatalı kalıcı bağlantı ayarları veya eski .htaccess kurallarından kaynaklanır. Ayarlar > Kalıcı Bağlantılar bölümünü açın ve kuralları yenilemek için "Değişiklikleri Kaydet" düğmesine tıklayın, ardından .htaccess dosyasını ve bağlantı yapısını kontrol edin.
Sorun nasıl anlaşılır
- Yönetim panelinde var olan sayfalar 404 Not Found hatası veriyor
- Ana sayfa çalışıyor ancak iç sayfalar çalışmıyor
- Tekil yazı bağlantıları 404 hatası gösteriyor
- Kalıcı bağlantı yapısı değiştirildikten sonra eski adresler çalışmıyor
- 404 yalnızca bazı sayfalarda, ayarlara bağlı olarak görünüyor
En yaygın nedenler
.htaccess dosyasındaki eski kurallar
WordPress, güzel bağlantıları yönlendirmek için .htaccess dosyasını kullanır. Kurallar güncellenmezse sunucu isteği nasıl işleyeceğini bilemez ve 404 döndürür.
Kalıcı bağlantı yapısının değiştirilmesi
Yapı 301 yönlendirmesi olmadan değiştirilirse eski adresler 404 verebilir. Varsayılan yapı (/?p=123) tek başına mevcut sayfalarda 404'e neden olmamalıdır.
mod_rewrite modülünün etkin olmaması
Apache sunucusunda mod_rewrite modülü açık olmalıdır. Bu olmadan güzel bağlantılar çalışmaz ve 404 verir.
Önbellek veya güvenlik eklentileriyle çakışma
Bazı eklentiler .htaccess dosyasını değiştirir veya yönlendirme kurallarını önbelleğe alır, bu da mevcut sayfalarda 404 hatasına yol açabilir.
Alan adı değişikliği veya site taşıma
Yeni bir alan adına veya sunucuya geçtikten sonra veritabanı eski yolları içerebilir ve .htaccess otomatik olarak güncellenmez.
Adım adım çözüm
- 1
Sayfanın gerçekten var olup olmadığını kontrol edin
Yönetim panelinde
Sayfalar > Tüm Sayfalarbölümünü açın ve sayfanın çöp kutusunda olmadığından ve durumunun "Yayınlandı" olduğundan emin olun. Sayfa çöp kutusundaysa geri yükleyin ve tekrar açmayı deneyin. - 2
Kalıcı bağlantıları sıfırlayın
Ayarlar > Kalıcı Bağlantılarbölümüne gidin. Yapıyı değiştirmeyin, yalnızcaDeğişiklikleri Kaydetdüğmesine tıklayın. WordPress, sunucu yazma izni veriyorsa .htaccess kurallarını yeniden oluşturacak ve yönlendirmeleri yenileyecektir. - 3
.htaccess dosyasını kontrol edin
Apache veya LiteSpeed sunucusunda siteye FTP veya hosting dosya yöneticisi üzerinden erişin. Değişiklik yapmadan önce dosyanın yedeğini alın. WordPress kurulumunun kök dizinindeki
.htaccessdosyasını açın ve WordPress kural bloğunu içerip içermediğini kontrol edin. Dosya yoksa veya WordPress kural bloğunu içermiyorsa silmeyin. Varsa.htaccess.bakolarak yeniden adlandırın ve WordPress'in yeniden oluşturmayı denemesi için kalıcı bağlantıları tekrar kaydedin. Özel kurallarınız varsa kontrol ettikten sonra yedekten geri yükleyin. Dosya yeniden oluşturulmazsa yedeği geri yükleyin ve hosting desteğine başvurun. - 4
Eklentileri geçici olarak devre dışı bırakın
Gerekli olanlar dışındaki tüm eklentileri devre dışı bırakın ve kalıcı bağlantıları tekrar kaydedin. Bunu yapmadan önce sitenin yedeğini alın. Hata kaybolursa sorunlu eklentiyi bulmak için eklentileri tek tek etkinleştirin. Önbellek, güvenlik ve yönlendirme eklentilerine dikkat edin.
- 5
mod_rewrite'ın etkin olup olmadığını kontrol edin
Hosting desteğine başvurun ve
mod_rewritemodülünün etkin olup olmadığını sorun. Apache sunucularında bu, güzel bağlantıların çalışması için gereklidir. Nginx kullanıyorsanız kurallar farklı şekilde ayarlanır ve bu genellikle sunucu yöneticisi veya hosting desteği tarafından yapılır. - 6
Bağlantı yapısını geçici olarak değiştirin
Hiçbir şey işe yaramazsa
Ayarlar > Kalıcı Bağlantılarbölümünde geçici olarak farklı bir yapı seçin, örneğinYazı adı,Değişiklikleri Kaydetdüğmesine tıklayın ve ardından istediğiniz yapıyı tekrar seçip kaydedin. Bunu yapmadan önce veritabanının ve sitenin yedeğini alın çünkü yapı değişikliği adresleri değiştirir ve SEO'yu etkileyebilir. Bu şekilde sorunun bağlantı yapısının kendisinde olup olmadığını kontrol etmiş olursunuz. - 7
Sitenin alt dizinde olup olmadığını kontrol edin
WordPress bir alt klasöre (örneğin
/blog/) kuruluysaAyarlar > GenelbölümündeWordPress Adresi (URL)veSite Adresi (URL)alanlarının doğru girildiğinden emin olun. Yanlış URL, ana sayfa dışındaki tüm sayfalarda 404 hatasına neden olabilir. - 8
Önbelleği temizleyin
Önbellek eklentisinin önbelleğini, tarayıcı önbelleğini ve sunucu düzeyindeki önbelleği (hosting paneli üzerinden veya hosting desteği yardımıyla) temizleyin. Ardından sayfayı önbelleği atlayarak zorla yenileyin (Ctrl+F5, macOS'ta Cmd+Shift+R).
Hiçbir şey işe yaramazsa: veritabanı ve kalıcı bağlantıları kontrol edin
Tüm adımlar denendiği halde 404 hatası devam ediyorsa sorun veritabanında olabilir. Seçenekler tablosunu (varsayılan olarak wp_options) ve siteurl, home ile permalink_structure değerlerini kontrol edin. Değişiklik yapmadan önce veritabanının yedeğini alın. Veritabanına nasıl erişeceğinizi bilmiyorsanız hosting desteğine başvurun. Ayrıca sitenin başka bir alan adından taşınıp taşınmadığını ve içerikte eski bağlantıların kalıp kalmadığını kontrol edin. Veritabanında arama ve değiştirme aracı (örneğin Better Search Replace) yardımcı olabilir, ancak bunu yalnızca güncel bir yedeğiniz varsa kullanın. Gelişmiş .htaccess kuralları veya Nginx yapılandırması için sunucu yöneticinize danışın.
Tekrarlanmaması için
- Kalıcı bağlantıları değiştirmeden önce veritabanının ve dosyaların düzenli olarak yedeklenmesi
- Gereksiz yere kalıcı bağlantı yapısını değiştirmekten kaçınmak
- Güvenilir önbellek ve güvenlik eklentileri kullanmak
- Site taşındıktan sonra .htaccess dosyasını kontrol etmek
Ne zaman uzmana başvurmalı
Eğer .htaccess dosyasına veya veritabanına nasıl erişeceğinizden emin değilseniz ya da tüm adımlardan sonra hata devam ediyorsa, sitede ek hasar oluşmasını önlemek için IT desteğine başvurun.
Web sitesi yapımı · Hızlı, SEO uyumlu, çok dilli web siteleriSık sorulan sorular
Sayfalarım yayınlandığı halde neden 404 hatası veriyor?
En yaygın neden eski .htaccess dosyası veya hatalı kalıcı bağlantı yapısıdır. Ayarlardan kalıcı bağlantıları sıfırlamak sorunu genellikle çözer.
Kalıcı bağlantıları değiştirirsem SEO kaybeder miyim?
Evet, eski adresler çalışmayı durdurabilir ve sıralamalarını kaybedebilir. Bu nedenle yapıyı gereksiz yere değiştirmemek en iyisidir; değiştirmeniz gerekiyorsa 301 yönlendirmeleri ayarlayın.
Sorunun bir eklentiden kaynaklanıp kaynaklanmadığını nasıl anlarım?
Tüm eklentileri geçici olarak devre dışı bırakın ve hatanın oluşup oluşmadığını kontrol edin. Hata kaybolursa soruna neden olan eklentiyi bulana kadar tek tek etkinleştirin.