SORU
7 Aralık 2008, Pazar


404 Dönen 200 OK Yerine 404 Bulunamadı ASP.NET Özel Değil

Google Web Yöneticisi Araçları için kurulum sitemde denedikten sonra ASP.NET 404 sayfa benim Özel 404 durum kodunu döndüren olmadığını buldum. Doğru özel sayfa görüntülenen tüm tarayıcı söyledi. Bu yumuşak 404 veya yanlış 404 düşünün. Google bunu sevmez. Konuyla ilgili pek çok makale buldum ama istediğim çözüm işe yaramadı.

Çalışmak istiyorum çözüm özel 404 sayfası Page_Load yöntemi arkasındaki kod aşağıdaki iki satırı ekliyor.

Response.Status = "404 Not Found";
Response.StatusCode = 404;

Bu işe yaramıyor. Sayfa hala 200 OK verir. Ben sabit tasarım koduna aşağıdaki kodu düzgün çalışır ancak buldum.

<asp:Content ID="ContentMain" ContentPlaceHolderID="ContentPlaceHolderMaster" runat="server">

<%
	Response.Status = "404 Not Found";
	Response.StatusCode = 404;
%>

 ... Much more code ...

</asp:content>

Bu sayfa bir ana sayfa kullanıyor. Ve benim web özel hata sayfaları yapılandırma ediyorum.config. Gerçekten çok seçenek arkasındaki kod kullanmak istiyorsunuz ama bu işi bir satır içi kod hack tasarım / düzeni koymadan yapmak için görünmüyor olabilir.

CEVAP
7 Aralık 2008, Pazar


Çözüm:

Sorun, ortaya çıktı, ana sayfanın kullanın. Bende bu işe belirleyerek durumu kodu daha sonra sayfaların ömrü, belli ki render Ana Sayfa oldu sıfırlanması, yani bozdu oluşturma yöntemi ve sonra işlemek tam.

protected override void Render(HtmlTextWriter writer)
{
    base.Render(writer);
    Response.StatusCode = 404;
}

Daha fazla iş tam olarak ana sayfanın durum ayarı olduğunu öğrenmek için yapılabilir, ama sana bırakıyorum.

< / ^ hr .

Orijinal Yazı:

İyi en azından özel hata sayfası görüntülenir ve bir 404 durum kodu döndürdü iyi iş test etmek için bir web uygulaması bulabildim. Uygulama ile yanlış ne olduğunu size söyleyemem, ama ne yaptığımı söyleyebilirim

1) web Düzenlenmiş.özel config hataları:

<customErrors mode="On">
  <error statusCode="404" redirect="404.aspx"/>
</customErrors>

2) Katma 404.sayfa SEO ve 404 durum kodunu ayarlayın.

public partial class _04 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.StatusCode = 404;
    }
}

Eğer ASP.NET tarafından işlenir ve var olmayan herhangi bir sayfa uzantısı gidersem, benim fiddler günlük bu kadar açıkça 404, burada başlık olduğunu gösterir:

HTTP/1.1 404 Not Found
Server: Microsoft-IIS/5.1
Date: Sun, 07 Dec 2008 06:04:13 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 533

Şimdi ise htm dosyası gibi ASP.NET tarafından işlenen bir sayfaya gidersem, özel sayfa göstermiyor ve IIS tarafından yapılandırılan 404 görüntülenir.

İşte bir yazı böyle gider biraz daha fazla bilgi olabilir kullanmak için sen ve senin sorunun, benim test yapar yönlendirme için yeni bir sayfa url talep edilen dosya oldukça fazla kayıp (başka bir sorgu dizesi).

http://stackoverflow.com/questions/152307/google-404-and-net-custom-error-pages

Başlık Casus Yanıt:

HTTP/1.1 404 Not Found
Date: Sun, 07 Dec 2008 06:21:20 GMT

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008