404 - Not Found / Sayfa Bulunamadı Hatasının Çözümü

Sayfa bulunamadı hatası alıyorsanız işte çözümü...

Sayfa bulunamadı hatasını web.config içerisinden yönetebiliyoruz.

Amacımız, sitemizde olmayan bir sayfaya veya klasöre erişimde bulunulmak istendiğinde -silinen sayfalara google botlarının erişmeye çalışması dahil- kullanıcılara ve arama motoru botlarına bu sayfanın artık silindiğini söylemek ve 

 

Server Error in '/' Application.


The resource cannot be found.

gibi hoş olmayan bir hata sayfası ile karşılaşmak zorunda bırakmamak.

Çözüm basit: web.config içerisine 2 düğüm ekleyeceğiz. 

Önce uzantı belirtilmediğinde yani olmayan bir klasör görüntülenmek istendiğinde hatayı yönetelim:

system.webServer tag ları arasına httpErrors düğümünü ekleyeceğiz:

 <system.webServer>
    
  <httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" path="/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"   />
  </httpErrors>
  
</system.webServer>

Tahmin edeceğiniz üzere, böyle bir durum ile karşılaştığımızda ana klasördeki 404.aspx sayfamıza yönlendirdik.

(Diğer parametreleri isteyen arkadaşlar araştırabilirler.)

Şimdi de olmayan bir sayfaya erişilmek istendiğinde hatayı yönetelim:

Bunun için system.web altına klasik customErrors düğümünü ekleyeceğiz:

 <system.web>

<customErrors mode="RemoteOnly"  redirectMode="ResponseRewrite">
  <error statusCode="404" redirect="/404.aspx"  />
</customErrors>

</system.web>

işimiz bitti mi? Hayır.

Şimdi de 404.aspx sayfası içerisinde 404 hata kodunu üretmeliyiz ki arama botları sayfamızı düzgün bir şekilde indexleyebilsinler.

protected void Page_Load(object sender, EventArgs e)
{
    Response.StatusCode = 404;
    Response.StatusDescription = "Not found";
}

 

İşte bu kadar.

Şimdi bunları bir site üzerinde örnekleyelim:

http://tarimsalpazarlama.com/asdxasdx.aspx (olmayan bir dosyaya erişim)

http://tarimsalpazarlama.com/asdxasdx (olmayan bir klasöre erişim)

Ve karşımızda bizim istediğimiz sayfa:

 

İsteyenler gerçekten 404 kodunun döndürüldüğünden emin olmak için şu linke göz atabilirler:

http://404checker.com/status/www.tarimsalpazarlama.com/asdxasdax.aspx

Ya da bu konu ile ilgili bir program tavsiye edebilirim:

Fiddler Web Debuggehttp://www.fiddler2.com

Herkese kolay gelsin.