Bir taşıma veya kalıcı bağlantı değişikliği sonrası 404 hatası
Yeni bir sunucuya taşındıktan sonra veya kalıcı bağlantı ayarlarına dokunulduktan hemen sonra sitedeki tüm sayfalar 404 hatası veriyorsa, neden neredeyse her zaman URL’leri WordPress’e yönlendiren sunucu yapılandırmasının taşınmaya eşlik etmemiş olmasıdır.
Nasıl ilerliyorum
-
Belirtinin ayırt edilmesi
Yalnızca ana sayfanın çalışıp çalışmadığını kontrol ediyorum; bu bir URL yeniden yazma sorununun tipik göstergesidir. Sitenin tamamı yönlendirme döngüsüne giriyorsa, bu genellikle kalıcı bağlantılardan çok bir siteurl/home sorunudur.
-
Web sunucusunun belirlenmesi
Apache ve Nginx aynı şekilde düzeltilmez: Apache kök dizindeki bir .htaccess dosyasını okur, Nginx ise yapılandırmasında doğrudan düzenlenmesi gereken bir server bloğuna ihtiyaç duyar.
-
Kalıcı bağlantıların yeniden kaydedilmesi
Apache’de .htaccess dosyasını yeniden oluşturmak için Ayarlar > Kalıcı Bağlantılar’ı yeniden kaydediyorum; Nginx’te ise try_files’a eşdeğer bir yönergeyi eklemek için server bloğunu düzenliyorum, çünkü WordPress bunu tek başına yapamaz.
-
Özel içerik türlerinin kontrolü
WooCommerce eklentileri veya bir sayfa oluşturucu kendi içerik türlerini kaydediyorsa, yeniden yazma kurallarının da düzgün şekilde alınabilmesi için bunların yeniden kaydetme sırasında etkin olup olmadığını kontrol ediyorum.
-
siteurl ve home kontrolü
Taşıma sonrası bu iki veritabanı seçeneğinin gerçek alan adıyla eşleştiğini kontrol ediyorum, çünkü yanlış bir siteurl, kalıcı bağlantılarla hiçbir ilgisi olmayan bir 404 veya yönlendirme döngüsü üretir.
Düzenli olarak ele aldığım durumlar
- Yeni bir barındırma sağlayıcısına taşındıktan sonra sitedeki tüm sayfalar 404 hatası veriyor
- Yalnızca ana sayfa çalışıyor, diğer tüm sayfalar 404 hatası veriyor
- Klasik sayfalar çalışırken WooCommerce ürün sayfaları 404 veriyor
- Alan adı değişikliğinden sonra bir yönlendirme döngüsü ortaya çıkıyor
- Kalıcı bağlantılar eski sunucuda çalışıyordu ama yenisinde çalışmıyor
Kalıcı bağlantılar nasıl çalışır, taşıma sonrası ne bozulur
WordPress’in “sade” kalıcı bağlantıları (Ayarlar > Kalıcı Bağlantılar) iki aşamada çalışır: WordPress ham URL’leri temiz yollara yeniden yazar, ardından web sunucusu WordPress’in bunu çözebilmesi için her isteği index.php’ye geri yönlendirmelidir. Apache’de bu yönlendirme .htaccess içindeki yeniden yazma kurallarıyla, Nginx’te ise sunucu yapılandırmasındaki eşdeğer bir blokla sağlanır.
Yeni bir sunucuya taşındıktan sonra bu .htaccess dosyası veya bu Nginx bloğu otomatik olarak taşınmaz. Apache’de Ayarlar > Kalıcı Bağlantılar’ı yeniden kaydetmek .htaccess’i yeniden oluşturur ve genellikle yeterlidir. Nginx’te ise server bloğunun doğrudan düzenlenmesi gerekir, bunu WordPress kendi başına yapamaz.
Birçok WooCommerce eklentisi ve sayfa oluşturucunun şablonları için kullandığı özel içerik türlerinin de kendi yeniden yazma kurallarının yeniden oluşturulması gerekir: kalıcı bağlantıları yeniden kaydetmek bunu sağlar, ama yalnızca bunları tanımlayan eklenti o sırada etkinse. Taşıma sonrası siteurl/home seçenekleri ile gerçek alan adı arasındaki bir uyumsuzluk, kalıcı bağlantılarla ilgisi olmayan farklı bir 404 veya yönlendirme döngüsü türü üretir: ikisi bir satıcıya benzer görünür ama farklı şekilde düzeltilir.
# 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
İlgili sayfalar
İhtiyacınızı bir dakikada anlatın
Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.