Profesyonel WordPress haber teması · Kurulum desteği dahil

WordPress 404 Hatası: Yazılar Açılmıyor, Kalıcı Bağlantı Sorunu Çözümü

Ana sayfa çalışıyor ama iç sayfalar "bulunamadı" veriyorsa sorun kalıcı bağlantı kurallarında. Beş adımda çözüm.

S Site Yöneticisi 6 dk okuma 4 görüntülenme
WordPress 404 Hatası: Yazılar Açılmıyor, Kalıcı Bağlantı Sorunu Çözümü

Ana sayfa sorunsuz açılıyor. Ama bir yazıya tıklıyorsun, "Sayfa bulunamadı" çıkıyor. Kategori sayfaları da öyle. Panel çalışıyor, içerikler yerinde duruyor — ama hiçbirine ulaşılamıyor.

Bu, WordPress'in en çok kafa karıştıran hatalarından biri, çünkü site yarı yarıya çalışıyor gibi görünüyor. Sebebi neredeyse her zaman aynı: sunucu, güzel URL'leri nasıl işleyeceğini unutmuş.

Çözümü çoğu zaman tek bir butona basmak kadar basit.

Neden oluyor?

WordPress'te iki tür adres var:

  • Çirkin hali: siteniz.com/?p=123
  • Güzel hali: siteniz.com/haber-basligi

İkincisine "kalıcı bağlantı" (permalink) deniyor. Sunucu, güzel adresi görünce onu arka planda çirkin haline çevirip doğru içeriği buluyor. Bu çeviri kuralları .htaccess dosyasında yazılı (Apache sunucularda) ya da sunucu yapılandırmasında (Nginx'te).

Bu kurallar bozulduğunda ne oluyor: Ana sayfanın adresi kural gerektirmiyor, o yüzden açılıyor. Ama siteniz.com/haber-basligi adresine gelen sunucu, o isimde bir klasör arıyor, bulamıyor ve 404 veriyor.

Ne zaman bozulur?

DurumNeden
Siteyi taşıdımYeni sunucuda .htaccess taşınmamış veya kurallar farklı
Kalıcı bağlantı ayarını değiştirdimKurallar yeniden yazılamamış
Eklenti kurdum/sildimEklenti .htaccess dosyasına müdahale etmiş
Hosting güncelleme yaptıSunucu yapılandırması değişmiş
Hiçbir şey yapmadımDosya izinleri değişmiş olabilir

Adım 1: Kalıcı bağlantıları yenile (ilk deneme)

Vakaların büyük kısmı burada çözülüyor. 10 saniye sürüyor.

  1. WordPress paneline gir.
  2. Ayarlar → Kalıcı Bağlantılar sayfasını aç.
  3. Hiçbir şey değiştirme.
  4. Sayfanın altındaki Değişiklikleri Kaydet butonuna bas.

Bu işlem WordPress'e .htaccess kurallarını sıfırdan yazdırıyor. Siteyi aç ve bir yazıya tıkla.

Düzeldiyse iş bitti. Düzelmediyse devam et — muhtemelen WordPress dosyaya yazamıyor.


Adım 2: .htaccess dosyasını elle düzelt

WordPress .htaccess dosyasına yazamıyorsa 1. adım hiçbir şey yapmıyor demektir.

  1. FTP ya da hosting dosya yöneticisiyle kök dizine gir (public_html).
  2. .htaccess dosyasını bul. Gizli dosya olduğu için görünmeyebilir — dosya yöneticisi ayarlarından "gizli dosyaları göster" seçeneğini aç.

Dosya varsa

Yedek olarak adını .htaccess-eski yapıp yeni bir .htaccess dosyası oluştur ve içine şunu yaz:

apache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Bu, WordPress'in varsayılan kural setidir.

Dosya hiç yoksa

Aynı içerikle yeni bir dosya oluştur. Adının tam olarak .htaccess olmasına dikkat et — başındaki nokta dahil, uzantı yok.

İzin sorunu

Dosya varsa ama WordPress yazamıyorsa izinlere bak. .htaccess dosyasının izni 644 olmalı. Dosya yöneticisinde sağ tık → İzinler bölümünden ayarlayabilirsin.

İzni düzelttikten sonra 1. adımı tekrar dene — WordPress artık yazabilecek.


Adım 3: Sunucu Apache mi, Nginx mi?

Burası çoğu Türkçe rehberde atlanan nokta.

.htaccess dosyası sadece Apache sunucularda çalışıyor. Sunucun Nginx ise bu dosyayı düzenlemek hiçbir şey değiştirmiyor — Nginx bu dosyayı okumuyor bile.

Nasıl anlarsın: Hosting panelinde sunucu bilgileri bölümüne bak, ya da WordPress panelinde Araçlar → Site Sağlığı → Bilgi → Sunucu bölümünde yazıyor.

Nginx kullanıyorsan: Kalıcı bağlantı kuralları sunucu yapılandırma dosyasında tanımlanıyor ve buna sen erişemiyorsun. Hosting desteğine yazman gerekiyor: "Nginx sunucuda WordPress kalıcı bağlantı kuralları tanımlı değil, ayarlayabilir misiniz?" Çoğu firma bunu birkaç dakikada yapıyor.

LiteSpeed kullanıyorsan .htaccess çalışıyor, Apache gibi davranıyor.


Adım 4: mod_rewrite açık mı?

Apache sunucularda kalıcı bağlantıların çalışması için mod_rewrite modülünün açık olması gerekiyor. Çoğu hostingde açık geliyor ama bazı yapılandırmalarda kapalı olabiliyor.

Kontrol etmenin en pratik yolu hosting desteğine sormak: "mod_rewrite modülü aktif mi?"

Kapalıysa açtırman gerekiyor; bu senin yapabileceğin bir ayar değil.


Adım 5: Eklenti ve tema testi

Buraya kadar çözülmediyse bir eklenti yönlendirme kurallarına müdahale ediyor olabilir. Özellikle şu tip eklentiler:

  • SEO eklentileri (yönlendirme modülleri)
  • Yönlendirme yönetim eklentileri
  • Güvenlik eklentileri
  • Çoklu dil eklentileri
  • Önbellek eklentileri

Hepsini devre dışı bırakıp dene. Düzeldiyse teker teker açarak suçluyu bul. Panele giremiyorsan FTP ile wp-content/plugins klasörünün adını değiştir — ayrıntılı anlatımı hatalar rehberimizde.

Eklentiler değilse temayı varsayılanla değiştirip dene.


Özel durumlar

Sadece bazı sayfalar 404 veriyor

Tüm site değil de belirli sayfalar 404 veriyorsa sorun kalıcı bağlantı kurallarında değil.

Muhtemel sebepler:

  • Sayfa taslak durumunda ya da çöp kutusunda
  • Sayfanın adresi (slug) değişmiş
  • İki içerik aynı adresi kullanmaya çalışıyor
  • İçerik silinmiş ama linki başka yerde duruyor

Panelde o içeriği bulup durumunu ve adresini kontrol et.

Taşıma sonrası 404

Siteyi yeni bir sunucuya taşıdıysan .htaccess dosyası taşınmamış olabilir — gizli dosya olduğu için kopyalama sırasında atlanıyor. 2. adımdaki dosyayı oluşturmak çözüyor.

Taşıma sonrası kontrol listesinin tamamı site taşıma rehberimizde.

Sadece yönetim panelinde 404

Panel sayfaları 404 veriyorsa sorun büyük ihtimalle bir eklentide ya da site adresi ayarında. Ayarlar → Genel bölümündeki WordPress Adresi ve Site Adresi değerlerini kontrol et.

Türkçe karakterli adresler

Adreste Türkçe karakter (ş, ğ, ı, ö, ç, ü) varsa bazı sunucu yapılandırmalarında sorun çıkabiliyor. Yazı adreslerini Türkçe karaktersiz kullanmak hem bu sorunu hem paylaşımda link bozulmalarını önlüyor.


404 sayfasını işe yarar hale getir

Bu hatayı çözdükten sonra bir şey daha: 404 sayfan nasıl görünüyor?

Ziyaretçi eninde sonunda silinmiş ya da adresi değişmiş bir içeriğe denk gelecek. Boş bir "bulunamadı" sayfası o ziyaretçiyi kaybetmek demek.

İyi bir 404 sayfasında şunlar olmalı:

  • Arama kutusu
  • Ana sayfaya ve popüler kategorilere linkler
  • Son yayınlanan içerikler
  • Sade bir açıklama

Ayrıca Search Console'daki 404 kayıtlarını düzenli kontrol et. İnsanların aradığı ama sende olmayan sayfaları gösteriyor — hem düzeltilmesi gereken linkleri hem yeni içerik fikirlerini oradan çıkarabilirsin.

Adresi değişen içerikler için 301 yönlendirmesi kur. Eski adres yeni adrese yönlensin; hem ziyaretçi kaybetmezsin hem arama sıralaması korunur.


Sıkça sorulan sorular

Ana sayfa açılıyor ama yazılar 404 veriyor, neden? Kalıcı bağlantı kuralları bozulmuş demektir. Ana sayfa bu kurallara ihtiyaç duymadığı için açılıyor, iç sayfalar açılmıyor.

Kalıcı bağlantıları yeniledim ama düzelmedi, ne yapmalıyım? WordPress muhtemelen .htaccess dosyasına yazamıyor. Dosyayı elle oluşturmayı ve izinleri 644 yapmayı dene. Sunucun Nginx ise .htaccess hiç çalışmıyor, hosting desteğine yazman gerekiyor.

.htaccess dosyasını bulamıyorum? Gizli dosya. Dosya yöneticisi ayarlarından "gizli dosyaları göster" seçeneğini açman gerekiyor.

404 hatası SEO'yu etkiler mi? Tüm iç sayfalar 404 veriyorsa evet, ciddi şekilde. Google sayfaları erişilemez sayıp indeksten düşürmeye başlar. Tek tük 404 ise normal ve zararsız.

Siteyi taşıdım ve tüm yazılar 404 veriyor? .htaccess dosyası taşınmamış olabilir — gizli olduğu için atlanıyor. Yeni bir tane oluşturup varsayılan WordPress kurallarını yaz.

Sadece bir sayfa 404 veriyor? Sorun kalıcı bağlantılarda değil. O içerik taslak durumunda, çöp kutusunda ya da adresi değişmiş olabilir.

Kalıcı bağlantı yapısını değiştirsem eski linkler kırılır mı? Evet, eski adresler 404 verir. Değiştireceksen mutlaka 301 yönlendirmeleri kur.


Sonuç

Bu hatanın çözümü çoğu zaman Ayarlar → Kalıcı Bağlantılar sayfasındaki kaydet butonunda bitiyor. Çözülmüyorsa sıra .htaccess dosyasını elle oluşturmakta — ve sunucun Nginx ise doğrudan hosting desteğinde.

Diğer WordPress hataları ve çözümleri için hatalar rehberimize bakabilirsin.

Hostinger Partner

Sitenizi ışık hızına çıkaran güçlü altyapı

Henüz bir hostinginiz yoksa en doğru yerdesiniz. Haber sitesinde hız her şeydir: sayfanız rakibinizden bir saniye önce açıldığında okuyucu sizde kalır, arama sonuçlarında da öne geçersiniz. Hostinger'ın WordPress altyapısı bu farkı ilk günden kuruyor — kuponla %20 indirimden yararlanın, rakiplerinizden önde başlayın.

  • LiteSpeed önbellek
  • NVMe disk
  • Ücretsiz SSL
  • Günlük yedekleme
  • Türkçe destek
İş ortağımıza özel
%20indirim
WP20CODE
Hemen Başlayın Kodu ödeme adımında girin