2011-05-31 18 views
7

Bir cms kullanıyorum ve dosya bulunamadı-olmayan hatalar farklı şekillerde ele alınabilir:404 sayfaya yönlendirin veya 404 mesajını görüntülüyor musunuz?

  1. sayfa yönlendirilecek olmaz, ancak bir hata-msg varsayılan düzenini kullanarak (içerik olarak gösterilecektir menü/altbilgi ile).
  2. Bu sayfa error.php'ye yönlendirilecek (sayfa 1 ile aynı gibi görünüyor ancak adres değişti)
  3. Sayfa mevcut bir sayfaya yönlendirilecek, örn. sitemap.php

Arama motorları için tercih edilen bir yöntem var mı, yoksa bu hiç farketmiyor mu?

+0

sistem o URL'nin tarihinin bir günlük tutmak mı ve bu nedenle akım doğru URL nedir biliyor ki? Eğer öyleyse, o zaman sadece bir iç re-direct yapmak ve mevcut içeriği sunmak. Aksi halde 404 hatasını teslim etmelisiniz. – user212102

cevap

13

Bulunmazsa, bir 404 sayfası vermelisiniz. Bir yönlendirme yapmak, 302 kodunun ardından '200 OK' takiben bazı içeriğin varlığına işaret eder. 404lik bir daire, "dosya yok. Beni durdurmayı kes" diyor. uygun başlık koduyla 404 sayfası sunacağını böyle

şey:

<?php 
if ($page_not_found) { 
    header('This is not the page you are looking for', true, 404); 
    include('your_404_page.php'); 
    exit(); 
} 
+0

Belki de '404.php' betiğinde 'header (...)' ve 'exit()' yi koymak daha iyidir. Bir işlev aracılığıyla '404.php'nizi' dahil edip etmediğinizi, üstteki genel değişkenlerinin buna erişemeyeceğini unutmayın. – Mowji

6

Yönlendirme yapmayın.

Arama motorlarını unutun. Bir URL yazıp küçük bir yazım hatası yaparsam ve beni yönlendirirseniz, her şeyi tekrar yazmam gerekir.

Sayfa yeniden yönlendirilmeyecek, ancak bir hata-msg içerik olarak görüntülenecektir (menü/altbilgiyle varsayılan düzeni kullanarak). Bir hata sayfası olduğunu netleştirmeye çalışın. Normal bir sayfa gibi da görünmemelidir.

sayfa

hayır gerçekten, gerçekten

No. (sayfa aynı gibi 1. ama adresi değişti görünüyor) error.php yönlendirileceksiniz.

Bu sayfa, mevcut bir sayfaya yönlendirilecektir, örn. sitemap.php

HTTP'de bir kaç yönlendirme durum kodu vardır, bunların hiçbiri "Bulunamadı, ancak bunun yerine bunu beğenebilirsiniz".

+1

Yönlendirmeler, yeniden konumlandırılan konum çubuğunuzdaki URL'yi içermez. Örneğin, web üzerindeki 404 sayfanın büyük çoğunluğunu alın. Gerçekten, seçenek (2) baaaad. –

+0

Bu iyi bir nokta. – Ilyssis

+1

Sunucu ve istemciler arasındaki etkileşim hakkında soru olduğu için, bir HTTP yönlendirmesi hakkında konuştuğunu varsaymak makul görünüyor. Müşteriye hiçbir şekilde maruz kalmayan bir iç yönlendirme, bir fark yaratmayacaktır. – Quentin