Loading

Abdulkadir ÖÇSOY

Web Yazılım & Veri Tabanı Uzmanı

Merhabalar, Kişisel web siteme HOŞGELDİNİZ.

Hakkımda ve yaptığım iş ile ilgili aradığınız herşeye web sitemden ulaşabilirsiniz. Ziyaretiniz için teşekkür ederim...

Sosyal Ağlar

ASP.NET'de URLRewriter Nasıl Kullanılır

asp.neturlurlrewriteraspx to htmlaspxhtml

Güncelleme Tarihi : 19.10.2015


İndirme Dosyaları

url.rar

Merhaba Arkadaşlar, Ben Abdulkadir;

ASP.NET'de URLRewriter nasıl yapılır elimden geldiğince anlatmaya çalışacağım. İnşallah faydalı olur.
URLRewriter'ın amacı webformlarınızın uzantısını ve adını istediğiniz şekilde değiştirmenizi sağlıyor. Yani örneğin index.aspx bir web form'unuzu adres çubuğunda Anasayfa.html şeklinde göstermek istiyorsanız URLRewriter bu işinizi halledecektir.

İlk olarak linkini vermiş olduğum url.rar dosyasını indirip rar'dan çıkartıyoruz. Çıkardığınızda url klasöründe urlwriter için bir dll dosyası ve web.config dosyası bulunmaktadır.
url Klasör Yolu


Öncelikle visual studio ile "urlrewriterornek" adında yeni bir web projesi açıyorum ve içerisine index.aspx ve contact.aspx adında iki tane web form ekliyorum. Daha sonra her iki web form'a da birer linkbutton ekliyorum ve PostBackUrl özelliklerine tıkladığımda gitmek istediğim sayfaların isimlerini yazıyorum.
Sayfa İsimleri

Gördüğünüz gibi Anasayfa.html ve iletisim.html sayfaları yazdım fakat bu sayfalar projemde bulunmadığı için hata alıcam. İsterseniz test edip görebilirsiniz.
Şimdi gelelim URLRewriter olayını gerçekleştirmeye ve böyle hata almadan istediğimiz isimde istediğimiz sayfaya gitmesini sağlayabilecek miyiz görelim. İlk olarak yapmamız gereken url klasöründeki dll dosyasını projemize eklemek. Bunun için projemizin "Solution Explorer" kısmından "References" yazan kısma sağ tıklayıp "Add Reference"'ye tıklamalayız.
Add Reference

Açılan Pencereden alttaki "Browse..." tıklayarak url klasörümüzdeki dll dosyasını ekliyoruz.
Browse...

Gördüğünüz References listemizde "Intelligencia.UrlRewriter" eklendi.
Intelligencia.UrlRewriter

Bundan sonraki işleme url klasöründeki web.config dosyasıyla yapıcaz. Öncelikle klasördeki web.config dosyasını projemize sürükleyip bırakıyoruz. Daha sonra hemen yanına projemizdeki web.config dosyasını açıyoruz. Burdaki amacımız web.config'deki gerekli kısımları projemizin web.config'deki doğru yerlere yerleştirmek. İlk olarak "configSections" yazan kısmı alıyoruz ve web.config'deki "configuration" hemen altına ekliyoruz.
configuration configuration

Daha sonra "system.web" içindeki "httpModules" yazan kısmı ve hemen altındaki "pages ..." diye yazan kısmı kendi web.config dosyamızdaki "system.web" içerisine ekliyoruz.
configuration

Sonra "system.webServer" yazan kısmı ekliyoruz.
configuration

Son olarak "rewriter" kısmını ekliyoruz.
configuration

url="gorunecek.html" yazan kısma açmak istediğimiz sayfanın hangi isimle görünmesini istiyorsak onu yazıyoruz. to="asil.aspx" yazan kısma da açmak istediğimiz projemizde bulunan web formu yazıyoruz.
configuration

Aynı işlemleri iletisim sayfası içinde gerçekleştiriyoruz.
configuration

Şimdi Projemizi index.aspx sayfası ile çalıştırıp linkbutton'lara tıkladığında çalışıyor mu bir bakalım...
configuration

Gördüğünüz başarılı bir şekilde çalışıyor. Son olarak Sitenizde kulladığınız request.querystring olayında nasıl urlrewriter yapılır ona bakalım.

Örneğin haberdetay.aspx?ID=2 şeklindeki sayfamıza HABER_BASLIGI_2.html şeklinde yayınlamak istiyoruz. Bunu yapmak için web.config'deki "rewriter"'daki (.*) kısmını kullanacağız. Öncelikle yapılışını göstereyim daha sonra anlatayım.
configuration

Öncelikle "(.*)" şeklindeki ilk kısım to tarafındaki baslik=$1'e karşılık geliyor. Yani Veri tabanından gelen haber başlığımızı bu kısma yazıyoruz. İkinci "(.*)" şeklinde olan kısımda ID=$2'e karşılık geliyor. Gördüğünüz gibi "(.*)" şekiller arttıkça $'daki değerlerlerde artıyor. Şimdi linkbutton'da nasıl kullanacağımıza bakalım.
configuration

Gördüğünüz gibi HABER_BASLIGI kısmı bizim ilk "(.*)" şeklimiz "2"'de ikinci "(.*)" şeklimiz. Burda dikkat edilmesi gereken en önemli kısım haber başlıklarınızı veri tabanından çekmeden türkçe karakterleri ingilizce karakterelere çevirmek ve boşluk, ünlem, soru işareti vb.. karakterleri Replace etmeniz. Yoksa bir çok hata ile karşılaşabilirsiniz. Nasıl replace yapacağını bilmeyen arkadaşlar olursa Sayfanın altındaki yorum yaz kısmından bana ulaşabilirler. Ordan nasıl yapıldığıyla ilgili dosyaları atarım.

Evet şimdi request.querystring kodumuzu yazalım ve çalışıyor mu bir bakalım.
configuration configuration

Gördüğünüz gibi haber başlığı ve Idmiz geliyor. İnşallah yeterince açıklayıcı bir şekilde anlatabilmişimdir. İzlediğiniz Çok teşekkür ederim. Başka bir video'da görüşmek üzere... ← Diğer Dersler

Yoruz Yaz