İçeriğe geç

MVC’de Custom Error Pages: Özel Hata Sayfaları

Web sitelerinde kullanıcı deneyimi en kritik unsurlardan biridir. Bir kullanıcı aradığı sayfayı bulamadığında veya sunucuda beklenmedik bir teknik aksaklık yaşandığında, karşısına çıkan teknik terimlerle dolu sarı hata ekranları hem sitenin profesyonelliğine zarar verir hem de ziyaretçinin güvenini sarsar. ASP.NET mimarisinde bu durumların önüne geçmek için web.config dosyası üzerinden özelleştirilmiş hata sayfaları tanımlamak mümkündür. Bu makalede, 404 sayfa bulunamadı ve 500 sunucu hatası gibi durumlar için ziyaretçiyi bilgilendiren ve onları tekrar ana sayfaya yönlendiren dostane arayüzlerin nasıl yapılandırılacağını derinlemesine inceleyeceğiz. Bu sayede hata anlarında bile kullanıcıyla olan etkileşimi sürdürebilir ve sitenizin marka değerini koruyabilirsiniz. Doğru yapılandırılmış bir hata yönetim stratejisi, sadece görsel bir iyileştirme değil, aynı zamanda sitenizin güvenliğini ve arama motoru optimizasyonunu da doğrudan etkileyen teknik bir zorunluluktur. Profesyonel bir web projesinde, hatalar kaçınılmaz olsa da bu hataların sunuluş biçimi tamamen sizin kontrolünüzdedir.

Customerrors etiketinin yapılandırılması

ASP.NET uygulamalarında hata yönetimi için kullanılan ilk ve en temel yöntem system.web düğümü altında yer alan customErrors etiketidir. Bu yapılandırma, özellikle uygulama seviyesindeki hataları yakalamak için tasarlanmıştır. Bu etiketin mode özelliği üç farklı değer alabilir: On, Off ve RemoteOnly. Geliştirme aşamasında hataları görebilmek ancak canlı ortamda kullanıcıya gizlemek için RemoteOnly ayarı tercih edilmelidir. Bu moddayken, yerel makinede çalışan geliştirici hata detaylarını görebilirken, uzak sunucudaki kullanıcılar sizin tasarladığınız hata sayfasına yönlendirilir. defaultRedirect özniteliği ise, tanımlanmamış tüm hata kodları için gidilecek genel bir sayfa belirlemenize olanak tanır. Bu sayede beklenmedik bir durum oluştuğunda sistem kontrolü elden bırakmaz.

Httperrors ile iis düzeyinde kontrol sağlama

Modern IIS sürümlerinde, sadece ASP.NET hatalarını değil, statik dosyalar veya IIS tarafından üretilen hataları da yönetmek gerekir. İşte bu noktada system.webServer altındaki httpErrors düğümü devreye girer. CustomErrors sadece .aspx veya .cshtml gibi dinamik sayfaları etkilerken, httpErrors doğrudan web sunucusu düzeyinde çalışır ve .jpg, .html gibi dosyaların bulunamaması durumunda da devreye girer. Burada errorMode özelliğini Custom olarak ayarlamak, sunucunun varsayılan teknik mesajlarını tamamen devre dışı bırakır. Ayrıca existingResponse özelliğini Replace olarak belirlemek, IIS’in kendi hata mesajlarını sizin özel sayfalarınızla değiştirmesini garanti altına alır. Bu iki yapılandırmanın koordineli çalışması, sitenin her köşesinde tutarlı bir hata yönetimi sunar.

Hata kodlarına özel yönlendirme stratejileri

Her hatanın sebebi farklıdır ve kullanıcıya sunulan çözüm de buna göre değişmelidir. Örneğin, 404 hatası alan bir kullanıcıya sitenizde arama yapabileceği bir alan sunmak mantıklıyken, 500 hatası alan bir kullanıcıya teknik bir sorun olduğunu ve daha sonra tekrar denemesi gerektiğini söylemek daha doğrudur. Web.config dosyasında her hata kodu için ayrı bir error düğümü ekleyerek bu ayrımı yapabilirsiniz. Aşağıdaki tabloda sıkça kullanılan hata kodları ve bunların web.config içindeki karşılıkları gösterilmektedir:

Hata kodu Anlamı Önerilen sayfa
404 Sayfa bulunamadı 404.html
500 Dahili sunucu hatası 500.html
403 Erişim yasaklandı yetkisiz.html

Bu yönlendirmeler yapılırken redirectMode özelliğinin ResponseRewrite olarak ayarlanması önerilir. Bu sayede tarayıcıdaki URL değişmez ve hata mesajı mevcut adresin altında gösterilir, bu da arama motorlarının hatayı doğru anlamasına yardımcı olur.

Seo ve güvenlik açısından dikkat edilmesi gerekenler

Hata sayfalarını yapılandırırken yapılan en büyük hatalardan biri, hata sayfalarının 200 OK durum kodu döndürmesidir. Eğer bir sayfa bulunamıyorsa, özel hata sayfanızın yanıt başlığında hala 404 kodu yer almalıdır. Aksi takdirde arama motorları hata sayfanızı gerçek bir içerik sayfası sanarak dizine ekleyebilir, bu da SEO puanınızı olumsuz etkiler. Güvenlik tarafında ise, özel hata sayfaları sistem hakkında bilgi sızmasını engeller. Varsayılan hata ekranları sunucu sürümü, dosya yolları veya veritabanı sorguları gibi hassas bilgileri açığa çıkarabilir. Dostane bir hata sayfası kullanarak bu bilgileri saldırganlardan gizlemiş olursunuz. Ayrıca, hata sayfalarınızın içinde bulunan resim veya CSS dosyalarının yollarının mutlak yollar olması, klasör derinliği fark etmeksizin sayfanın her zaman doğru görünmesini sağlar.

Sonuç olarak, web.config dosyası üzerinden yapılan hata sayfası yapılandırmaları, modern web geliştirme süreçlerinin vazgeçilmez bir parçasıdır. Bu makalede ele aldığımız customErrors ve httpErrors modülleri sayesinde, kullanıcılarınızı karmaşık hata kodlarıyla baş başa bırakmak yerine onlara rehberlik eden estetik sayfalar sunabilirsiniz. 404 ve 500 gibi kritik hata kodlarının profesyonelce yönetilmesi, ziyaretçilerin web sitesinde kalma süresini artırırken teknik aksaklıkların marka imajına zarar vermesini engeller. Doğru yönlendirme modlarını seçmek ve arama motorları için uygun yanıt kodlarını korumak, başarılı bir hata yönetimi stratejisinin temel taşlarıdır. Uyguladığınız bu yöntemler neticesinde, hem yerel geliştirme süreçlerinizde detaylı hata raporlarına erişebilir hem de canlı ortamda son kullanıcılara kesintisiz ve güven verici bir dijital deneyim sağlayabilirsiniz. Unutmayın ki iyi bir hata sayfası, ziyaretçiyi kaybetmek yerine onu sitenizde tutmak için son bir şanstır ve bu şansı en iyi şekilde kullanmak tamamen sizin elinizdedir.

Resim Sahibi: Benjamin Farren
https://www.pexels.com/@benjaminfarren

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir