Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

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.

Sorunumu anlatayım Mesaj gönderin

Nasıl ilerliyorum

  1. 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.

  2. 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.

  3. 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.

  4. Ö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.

  5. 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.

.htaccess
# 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.

origine
catalogue
extensions-premium (facultatif)
conserver (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Barındırma sağlayıcımı yeni değiştirdim ve tüm site 404 veriyor, bu ciddi mi?
Hayır, çoğu durumda taşımaya eşlik etmemiş olan .htaccess dosyası veya Nginx yapılandırmasıdır. Tespit edildikten sonra genellikle birkaç dakikada düzeltilir.
Neden yalnızca ana sayfa çalışıyor, diğerleri çalışmıyor?
Bu, bir URL yeniden yazma sorununun tipik göstergesidir: ana sayfa kalıcı bağlantılara bağlı değildir, diğer sayfalar ise bağlıdır.
Kalıcı bağlantıları yeniden kaydettim ama hiçbir şey değişmedi, neden?
Site Nginx üzerinde çalışıyorsa, kalıcı bağlantıları yeniden kaydetmek yeterli değildir: Apache’den farklı olarak Nginx’in server bloğunun doğrudan düzenlenmesi gerekir, bunu WordPress tek başına yapamaz.
Taşıma sonrası URL’ler değişirse sıralamalarımı kaybeder miyim?
Eski URL’ler 301 ile yenilerine yönlendirilirse hayır. Bu, özellikle URL yapısı değiştiyse, kalıcı bağlantıları basitçe yeniden kaydetmekten ayrı olarak planlanması gereken bir iştir.
Ürün sayfalarım 404 veriyor ama klasik sayfalarım vermiyor, bu fark neden?
Ürün sayfaları WooCommerce’e özgü yeniden yazma kurallarına bağlıdır; bunlar yalnızca kalıcı bağlantılar yeniden kaydedildiğinde ilgili eklenti etkinse yeniden oluşturulur.