Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X
X
X
X

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
WordPress Teknik Rehberi

WordPress Sayfalar 404 Veriyor: Permalink ve .htaccess Çözümü

WordPress ana sayfası açıldığı hâlde yazı, sayfa, ürün veya kategori bağlantılarının 404 vermesi çoğunlukla rewrite kurallarının web sunucusuna uygulanmadığını gösterir. Kalıcı bağlantı ayarı, .htaccess, Nginx try_files, document root ve slug çakışmaları birlikte incelenmelidir.

404 Not FoundPermalinkhtaccessmod_rewriteNginx try_files
root@sunucu:~SSH
404 Not Found
The requested URL was not found on this server
nginx: open() /var/www/html/ornek-yazi failed
WordPress katmanıÇekirdek, tema ve eklenti davranışı
PHP katmanıSürüm, uzantı, limit ve fatal error
Sunucu katmanıWeb servisi, veritabanı, disk ve loglar
Güvenli yöntemYedekle, logla, izole et ve doğrula
01
Teknik açıklama

WordPress kalıcı bağlantı 404 hatası neden oluşur?

WordPress güzel URL’leri fiziksel dosya olarak saklamaz. Web sunucusu isteği index.php’ye yönlendirir ve WordPress doğru içeriği bulur. Rewrite zinciri bozulduğunda ana sayfa çalışırken diğer URL’ler 404 dönebilir.

Apache üzerinde .htaccess yazılamıyorsa WordPress ayar ekranı kuralları gösterir ancak dosyaya kaydedemez. mod_rewrite ve AllowOverride yapılandırması da doğru olmalıdır.

Nginx .htaccess okumaz; server bloğunda uygun try_files kuralı gerekir. Apache örneğini Nginx sunucusuna kopyalamak çözüm sağlamaz.

Taşıma sonrası document root, siteurl/home, alt dizin ve cache kayıtları eski yolu gösterebilir. URL düzeltmesi veritabanında seri hâle getirilmiş verileri bozmayacak araçla yapılmalıdır.

Custom Post Type, sayfa, kategori ve ürün sluglarının çakışması da yalnız belirli içerik türlerinde 404 oluşturabilir. Rewrite flush geçici düzelip yeniden bozuluyorsa kodun flush işlemini yanlış kullandığı araştırılmalıdır.

Her istekte flush_rewrite_rules çalıştırmak performans sorunu oluşturur. Rewrite kuralları yalnız yapı değiştiğinde bir kez yenilenmelidir.

02
Log mesajları ve anlamları

WordPress 404, rewrite ve permalink hata mesajları

E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.

8 kayıt
01uyarı

404 Not Found

Anlamı: İstenen URL web sunucusu veya WordPress tarafından bulunamamıştır.

Muhtemel neden: Rewrite eksik, yanlış kök veya gerçek içerik yok.

Ana sayfa ve ?p=ID biçimini karşılaştırın.
02uyarı

Ana sayfa açılıyor, diğer sayfalar 404

Anlamı: WordPress çalışıyor ancak güzel URL rewrite edilmemiştir.

Muhtemel neden: .htaccess, mod_rewrite veya Nginx try_files.

Kalıcı bağlantıları yeniden kaydedip web config’i kontrol edin.
03uyarı

The requested URL was not found on this server

Anlamı: Apache isteği index.php’ye yönlendirmemiştir.

Muhtemel neden: AllowOverride kapalı veya .htaccess kuralı yok.

Apache vhost ve .htaccess izinlerini doğrulayın.
04uyarı

Nginx static file 404

Anlamı: Nginx URL’yi fiziksel dosya olarak aramıştır.

Muhtemel neden: try_files kuralı WordPress’e düşmüyor.

server bloğundaki location / ayarını kontrol edin.
05uyarı

Category veya tag 404

Anlamı: Yalnız taksonomi rewrite kuralı bozulmuştur.

Muhtemel neden: Slug çakışması, eklenti veya base ayarı.

Taksonomi base ve çakışan sayfaları inceleyin.
06uyarı

Custom post type 404

Anlamı: Özel içerik türünün rewrite kaydı güncel değildir.

Muhtemel neden: Kod değişikliği sonrası flush yapılmamış veya slug çakışmış.

CPT kaydını doğrulayıp rewrite’ı bir kez yenileyin.
07uyarı

Migration sonrası tüm iç sayfalar 404

Anlamı: Yeni sunucuda rewrite/document root farklıdır.

Muhtemel neden: Taşıma sonrası vhost veya .htaccess eksik.

Yeni web sunucusu kurallarını ve kök dizini doğrulayın.
08uyarı

Soft 404

Anlamı: Sunucu 200 döndürürken içerik bulunamadı sayfası gösterir.

Muhtemel neden: Tema yanlış HTTP kodu üretiyor.

Gerçek bulunamayan URL’nin 404 kodu verdiğini kontrol edin.

Bu ifadeyle eşleşen kayıt bulunamadı.

03
Güvenli ilk inceleme

SSH teşhis komutları ve hangi çıktıya bakılmalı?

Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.

Kalıcı bağlantı yenileme
wp rewrite flush --hard

WordPress rewrite kurallarını ve destekleniyorsa .htaccess dosyasını yeniler.

Rewrite yapısını görüntüleme
wp rewrite list --format=table | head -n 40

İlk eşleşen rewrite kurallarını gösterir.

URL karşılaştırması
curl -sSIk https://example.com/?p=1
curl -sSIk https://example.com/ornek-yazi/

Düz query URL ile güzel URL’yi karşılaştırır.

htaccess kontrolü
ls -la .htaccess
cat .htaccess

Dosyanın varlığı, sahibi ve mevcut kuralları gösterir.

Apache mod_rewrite
apachectl -M 2>/dev/null | grep rewrite

mod_rewrite modülünün yüklü olup olmadığını gösterir.

Site URL değerleri
wp option get home
wp option get siteurl

Taşıma sonrası ana URL değerlerini doğrular.

04
Barındırma ortamına göre

cPanel, Plesk ve panelsiz sunucuda uygulanacak kontroller

WordPress hatasının temel nedeni aynıdır ancak log yolları, PHP ayar ekranları ve servis yönetimi kullanılan barındırma altyapısına göre değişir.

cPanel / WHM

cPanel Apache/LiteSpeed ortamında .htaccess ve MultiPHP ayarları öne çıkar.

  • File Manager’da gizli dosyaları gösterip .htaccess’i yedekleyin.
  • Kalıcı Bağlantılar ekranında değişiklik yapmadan Kaydet’e basın.
  • Addon domain document root yolunu doğrulayın.
cd /home/KULLANICI/public_html && wp rewrite flush --hard

Plesk Obsidian

Plesk’te Apache & nginx Settings ile document root ve rewrite davranışı kontrol edilir.

  • Domain kök dizininin httpdocs veya özel yolunu doğrulayın.
  • Nginx proxy mode ve ek direktifleri kontrol edin.
  • Gerekirse domain web config’ini repair ile yeniden oluşturun.
plesk repair web example.com

Panelsiz Linux Sunucu

Panelsiz sunucuda Apache AllowOverride veya Nginx try_files doğrudan yapılandırılır.

  • Apache’de mod_rewrite ve AllowOverride All ayarını doğrulayın.
  • Nginx location / içinde try_files $uri $uri/ /index.php?$args kullanın.
  • Config testinden sonra servisi reload edin.
nginx -t 2>/dev/null || apachectl configtest
05
Güvenli çözüm sırası

WordPress 404 ve kalıcı bağlantı hatasını çözme adımları

İçeriğin varlığını doğrulayın, query URL ile güzel URL’yi karşılaştırın ve kullanılan web sunucusuna uygun rewrite yapılandırmasını yenileyin.

1

İçeriğin gerçekten var olduğunu doğrulayın

Yazı/sayfa durumunun published olduğunu ve çöp kutusunda olmadığını kontrol edin.

wp post list --post_status=publish --fields=ID,post_title,post_name
2

Query URL ile güzel URL’yi karşılaştırın

?p=ID açılıyor ancak slug açılmıyorsa rewrite katmanına odaklanın.

curl -sSIk https://example.com/?p=1
3

Kalıcı bağlantıları bir kez yenileyin

Panelden Kaydet veya WP-CLI rewrite flush kullanın.

wp rewrite flush --hard
4

Web sunucusu kuralını doğrulayın

Apache .htaccess veya Nginx try_files ayarını kullanılan stack’e göre kontrol edin.

apachectl -M 2>/dev/null | grep rewrite
5

Slug ve içerik türü çakışmalarını inceleyin

Sayfa, kategori, ürün ve CPT aynı slugı kullanıyorsa benzersiz yapın.

wp rewrite list
6

Cache ve Search Console sonuçlarını doğrulayın

Uygulama/CDN cache temizlendikten sonra gerçek 404 kodlarını yeniden tarayın.

curl -sSIk https://example.com/ornek-yazi/
06
Belirtiye göre ayrım

Özel senaryolar ve karar ağacı

Ana sayfa açılıyor, tüm yazılar 404

Rewrite veya .htaccess sorunu güçlü ihtimaldir.

wp rewrite flush --hard
Yalnız ürünler 404

WooCommerce permalink, product base ve slug çakışması kontrol edilir.

wp option get woocommerce_permalinks
Yalnız kategoriler 404

Category base, eklenti rewrite filtreleri ve aynı slugdaki sayfalar incelenir.

wp term list category
Taşıma sonrası başladı

Document root, home/siteurl, web server config ve cache kayıtları kontrol edilir.

wp option get siteurl
Nginx sunucuda .htaccess değişmiyor

Normaldir; Nginx .htaccess okumaz. server block try_files ayarı düzeltilmelidir.

nginx -T | grep -n 'try_files' | head

Kesinlikle yapmayın

  • Her sayfa isteğinde rewrite flush çalıştırmayın.
  • Nginx sunucuda .htaccess ile çözüm beklemeyin.
  • URL değişimini düz SQL replace ile yapıp serialized veriyi bozmayın.
  • Gerçek 404 sayfasını 200 koduyla döndürmeyin.
  • Tüm yönlendirmeleri kaldırmadan önce SEO 301 kayıtlarını yedekleyin.
  • Document root’u doğrulamadan dosyaları başka dizine taşımayın.

Çözüm sonrası doğrulama

  • Ana sayfa, yazı, sayfa, kategori ve ürün URL’leri açılıyor.
  • Gerçek olmayan URL 404 kodu döndürüyor.
  • Query URL ve güzel URL aynı içeriği gösteriyor.
  • Yeni .htaccess veya Nginx config testten geçiyor.
  • Yönlendirme zinciri oluşmuyor.
  • Search Console sitemap URL’leri doğru canonical ile taranıyor.
07
Resmî teknik kaynaklar

WordPress ve WP-CLI resmî dokümantasyonu

08
İç SEO içerik kümesi

İlgili WordPress hata çözümleri

09
Sık sorulan sorular

WordPress 404 ve Permalink hakkında merak edilenler

Ana sayfa açılırken diğer sayfalar neden 404 verir?

WordPress çalışır ancak güzel URL’leri index.php’ye yönlendiren rewrite kuralı çalışmıyordur.

Kalıcı bağlantıları kaydetmek ne yapar?

WordPress rewrite kurallarını yeniler ve uygun ortamda .htaccess dosyasına yazar.

Nginx .htaccess kullanır mı?

Hayır. Nginx için server block içinde try_files veya eşdeğer yönlendirme gerekir.

404 hataları SEO’yu etkiler mi?

Gerçek kaldırılmış sayfalar için 404 normaldir; var olan önemli URL’lerin yanlışlıkla 404 vermesi trafik ve index kaybına yol açabilir.

Soft 404 nedir?

Bulunamayan içerik gösterildiği hâlde sunucunun 200 başarılı kodu döndürmesidir.

Taşıma sonrası 404 nasıl düzelir?

Yeni document root, site URL’leri ve web sunucusu rewrite yapılandırması birlikte kontrol edilmelidir.

CPT 404 neden tekrarlar?

Özel içerik türünün rewrite kaydı, slug çakışması veya hatalı sürekli flush kodu sorun oluşturabilir.

EKA YAZILIM VE BİLİŞİM SİSTEMLERİ

Sunucunuzdaki hatayı kalıcı olarak çözelim

cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.

Sunucu Desteği Al WhatsApp
Top