Şimdi Ara

c# ve web.config Özel Hata Sayfası Oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
2
Cevap
0
Favori
493
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar. İnternette gezip tozuyorsun söyle adam akıllı detaylı bir 404-403-503 v.b. gibi hata sayfası makalesi bulunmamaktadır varsa da ya eksik ya düzgün çalışmıyor. Ben de uğraşıp tam çalışır halde bir hata sayfası yaptım sonunda ve paylaşmak istedim.

    Öncelikle söyle bir linkimiz var;
    www.serezoglu.com
    Halı, Koyunlu Halı, Koyunlu Halı Fantasy Modelleri ve Fiyatları
    https://www.serezoglu.com/529/koyunlu-hali-fantasy.aspx
    bu linki System.Web.Routing ile elde ettim böyle bir aspx sayfam tabi ki yok.

    Daha sonra bu sayfanın page_load kısmın da veri tabanı veyahut gerekli string çalışmaları neticesin de el de ettiğim linkle gerekli kontrolleri yapıyorum.

    BU KONTROLÜ SADECE System.Web.Routing İLE SEO AMAÇLI BELİRLEDİĞİNİZ LİNKLER DE KULLANABİLİRSİNİZ. EĞER PROJENİZ DE BÖYLE BİR ŞEYE İHTİYACINIZ YOKSA SADECE AŞAĞIDAKİ WEB.CONFİG AYARLARI İLE 404 V.B. AYARLARI AKTİF EDEBİLİRSİNİZ. System.Web.Routing KULLANIYORSANIZ PAGE_LOAD OLAYIN DA AŞAĞIDAKİ AYARLARI KULLANMAMANIZ HALİN DE SUNUCU SAĞLAYICINIZIN VARSAYILAN HATA SAYFASI KARŞINIZA ÇIKAR

    //Request.Url.AbsolutePath ile kullanıcının geldiği urlnin domain ismi olmadan alıyorum.
    //deger string' i Sizin db veya string çalışmaları neticesin de çalışan gerçek doğru linkiniz
    deger string = "/" + RouteData.Values["KID"] + "/" + dr["Url"].ToString() + ".aspx" //Çıktı hali: /529/koyunlu-hali-fantasy.aspx
    //Aşağı da kullanıcının geldiği link ile benim gerçek linkim birbirine denk mi kontrol ediyoruz.
    bool sonuc = (Request.Url.AbsolutePath == deger) ? true : false;
    //Eğer geldiği linkin karşılığı yok ise false düşüyor ve istediğim sayfaya yönlendiriyorum ama bunu yaparken arama motorları benimsemediği 302 yönlendirmesi yerine varsayılan kullanıcının geldiği linkte 404 hatası verdiriyoruz yanı kullanıcı deneme.aspx isteği yaptığın da deneme.aspx de bizim hazırladığımız 404 sayfası görüntülenir yani, geldiği deneme.aspx sayfasın da gösterilir farklı bir sayfaya yönlenmez.

    if (sonuc == false)
    {
    Response.Clear();
    Response.Status = "404 Not Found";
    Response.StatusCode = 404;
    Response.RedirectLocation = "hata sayfanız yazın"; //Örnek: /404.aspx
    }


    Yönlendirdiğiniz sayfaların page_load eventin de aşağıdaki kodları yazmanız gerekmektedir. Hangi hata sayfası ise onun kodunu yazınız. Örnek 404.aspx sayfası içindir
    Response.StatusCode = 404;
    Response.StatusDescription = "Not Found";


    Daha sonra web.config ayarlarına geçiriyoruz;

    <system.web> Altına
    <customErrors mode="RemoteOnly" redirectMode="ResponseRewrite">
    <error statusCode="403" redirect="403.aspx"/>
    <error statusCode="404" redirect="404.aspx"/>
    <error statusCode="503" redirect="503.aspx"/>
    </customErrors>

    <system.webServer> Altına
    <httpErrors errorMode="Custom">
    <remove statusCode="403" subStatusCode="-1"/>
    <remove statusCode="404" subStatusCode="-1"/>
    <remove statusCode="503" subStatusCode="-1"/>
    <error statusCode="403" path="/403.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"/>
    <error statusCode="404" path="/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"/>
    <error statusCode="503" path="/503.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"/>
    </httpErrors>

    Yazdığımız da projenizi derleyip yayına atabilirsiniz. 404 v.b. sayfalarınızı istediğiniz gibi tasarlayıp kullanıcıların gösterimine sunabilirsiniz.

    Dip Not: Hazırlamış olduğunuz sayfaları robots.txt Disallow yapmayı unutmayınız. Arama motorları bunları indexlemesine gerek yoktur.

    Örnek: Disallow: /404.aspx

    Daha sonra gerekli sayfa da hata kodunuz 404 geliyor mu kontrol edebilirsiniz.
    www.redirect-checker.org
    Redirect Checker | Check your Statuscode 301 vs 302
    http://www.redirect-checker.org/index.php



    < Bu mesaj bu kişi tarafından değiştirildi tolgasonmez87 -- 24 Nisan 2020; 6:32:18 >







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.