12 Şubat 2008

web.config Dosyasından URL ReWriting

URL ReWriting (sayfa adresini yeniden oluşturma) işlemi özellikle sayfalarımızda QueryString'leri kullanırken sıklıkla başvurmak istediğimiz bir işlemdir. Bu işlem karmaşık olan sayfa adresleri daha okunur ve sade hale getireceği gibi arama motorlarının sitemizdeki sayfaları daha verimli şekilde yakalamasını da sağlar. URL ReWriting'i uygulamanın birçok yolu bulunmaktadır. Kullanım bakımından en kolay yollardan biri de web.config dosyası ile bu işlemi gerçekleştirmektir. web.config dosyasında <system.web> düğümü içerisinde açacağımız <urlMappings> düğümü ile bu işlemin kolay şekilde yapılmasını sağlayabiliriz. Örneğin yazarların bilgilerini görüntüleyen bir sayfada içerik QueryString'den alınan bir veriye göre oluşsun. Sayfa arka planda aslında Yazar.aspx?isim=ugur şeklinde çalışıyor fakat biz adresin Ugur.aspx şeklinde görüntülenmesini istiyoruz. web.config dosyası içerisine ekleyeceğimiz aşağıdaki kod parçaları işimizi görecektir. mappedUrl niteliği sayfanın gerçek URL'ini, url niteliği ise görüntülenmesi istenilen URL'ini belirler. Yani Ugur.aspx gibi bir sayfaya istek geldiğinde aslında böyle bir sayfa olmayacaktır fakat adres kısmında bu URL görünecek ve arka planda Default.aspx?isim=ugur URL'i çalıştırılacaktır.


<configuration>
   <system.web>
      <urlMappings enabled="true">
         <add url="~/Ugur.aspx" mappedUrl="Default.aspx?isim=ugur" />
         <add url="~/Emrah.aspx" mappedUrl="Default.aspx?isim=emrah" />
         <add url="~/Burak.aspx" mappedUrl="Default.aspx?isim=burak" />
      </urlMappings>

      ...
      ...
   </system.web>
</configuration>


url niteliğinde relative adres belirlemek zorunludur. Yani çağrılacak URL'in tam yolunu ~/ şeklinde belirlemek gerekecektir. Bu işlemin çok az da olsa performans kaybına sebep olacağını da unutmamak lazım!

Hiç yorum yok: