WordPress kurduğunuzda, içeriklerinize ulaşmak için ucretsizentegrasyon.com/?p=123 gibi karmaşık yapılar yerine ucretsizentegrasyon.com/blog-basligi gibi kullanıcı dostu linkler kullanmak istersiniz. Ancak siz bu ayarı değiştirdiğinizde, sunucunuzun (IIS veya Apache) bu yeni adresi nasıl okuyacağını bilmesi gerekir. Eğer sunucu bu “yeni adresi” ana dizindeki index.php dosyasına yönlendiremezse, doğrudan o isimde bir klasör arar ve bulamayınca 404 hatasını döndürür.

Adım 1: Kalıcı Bağlantı Ayarlarını “Tetiklemek”

Çoğu zaman WordPress üzerindeki küçük bir yazılım hatası, yönlendirme kurallarının güncellenmesini engeller. Bunu manuel olarak tetiklemek en basit çözümdür:

  1. WordPress yönetim panelinize giriş yapın.

  2. Ayarlar > Kalıcı Bağlantılar menüsüne gidin.

  3. Mevcut ayarınız ne olursa olsun (örneğin “Yazı İsmi”), hiçbir değişiklik yapmadan sayfanın altındaki Değişiklikleri Kaydet butonuna tıklayın.

  4. Sitenizi gizli sekmede tekrar kontrol edin. Eğer düzelmediyse Adım 2’ye geçin.

Adım 2: Sunucu Tipine Göre Yapılandırma Dosyası Oluşturma

Ekran görüntünüzdeki hata mesajı bir Windows (IIS) sunucu kullandığınızı gösteriyor. Windows sunucularda .htaccess dosyası çalışmaz; bunun yerine web.config dosyası kullanılır.

Windows (IIS) Sunucular İçin Çözüm:

Sitenizin ana dizinine (public_html veya httpdocs) bir FTP programı (FileZilla gibi) veya hosting paneliniz üzerinden bağlanın.

  • Dizinde web.config dosyası var mı kontrol edin.

  • Yoksa yeni bir dosya oluşturun ve adını web.config yapın.

  • İçerisine şu standart WordPress yönlendirme kodlarını yapıştırın:

XML

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="WordPress Rule" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Linux (Apache) Sunucular İçin Çözüm:

Eğer sunucunuz Linux ise, ana dizindeki .htaccess dosyasını bulun ve içeriğini şu şekilde güncelleyin:

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

Adım 3: Eklenti ve Cache Kontrolü

Eğer yukarıdaki adımlar işe yaramadıysa:

  1. Cache Eklentileri: WP Rocket, LiteSpeed Cache gibi eklentiler kullanıyorsanız “Tüm Önbelleği Temizle” seçeneğini kullanın.

  2. Güvenlik Eklentileri: Bazı güvenlik eklentileri (iThemes Security vb.) .htaccess veya web.config dosyasına yazma erişimini kilitler. Bu eklentileri geçici olarak devredışı bırakıp Adım 1’i tekrar deneyin.

Sonuç

Bu sorun genellikle sunucunun, WordPress’in oluşturduğu sanal URL yapısını anlayamamasından kaynaklanır. Doğru yapılandırma dosyası (web.config veya .htaccess) ana dizinde mevcut ve doğru kodlara sahip olduğunda sorun %99 oranında çözülecektir.