» Url Yönlendirme – UrlRewriter Erzurum Sitesi
ERZURUM ERZURUM ERZURUM
Url Yönlendirme – UrlRewriter
Url Yönlendirme – UrlRewriter
Bu yazı 660 kez okundu.
27 Temmuz 2013 20:51 tarihinde eklendi



Web projelerimizde adres düzenini kendi belirlediğimiz yapıda hazırlayıp, arama motorlarına anlamlı ifadeler sunarak seo kriterlerine uygun adres yapısı oluşturmak isteriz. Bunun için bir kaç yöntem bulunmaktadır. Bu yazıda Open Source GPL lisansı ile dağıtılan Intelligencia.UrlRewriter.dll kütüphanesini kullanarak kendimize özel  adres düzenini kuracağız.

Öncelikle bu Url Rewriter işleminin bize ne gibi faydaları var onları sıralayalım.

  • Bazı arama motorları /post.php?id=987 gibi bir urlde dosya adına eklenen (?id=987) gibi uzantıları kabul etmemekteler.
  • Arama motorları aranan konunun adreste içeriyor olmasına özel bir önem vermektedirler. Örneğin “Url Yönlendirme” diye arama yaptığınızda aranan kayıtlar arasında osmancelik.com.tr/sayfa.aspx?Id=987 yerine osmancelik.com.tr/sayfa/987/url-yonlendirme gibi ifade arama motorlarına daha anlamlı gelmektedir.
  • Lamer diye ifade edilen çaylakların en çok denedikleri açık SQL injection diye ifade edilen  Query String’ten veritabanına erişme işlemine büyük oranda engel olabilirsiniz.
  • Yazılımcı sitenin url adreslerinin daha anlamlı, daha kullanıcı dostu olmasını isteyebilir -istemelidir-.

Şimdi bir örnekle yönlendirme işlemini yapalım. Bunun için Intelligencia.UrlRewriter.dllkütüphanesini buraya tıklayarak indirin. Projenize referans ediniz. Projede referans ettikten sonra bin dizininde Intelligencia.UrlRewriter.dll kütüphanesinin olduğundan emin olun.

Bir kütüphaneyi projeye referans etmek için Solution Explorer (Ctrl +W+S) üzerinde projeye sağ tıklayıp Add Reference.. menüsüne tıklayınız. Açılan menüde Browse butonu ile kütüphaneyi seçip ekleyiniz.

Web.Config dosyasında <configuration> noduna aşağıdaki kodları ekleyiniz.

01
02
03
<configSections>
  <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>

<system.web> noduna aşağıdaki kodları ekleyiniz.

01
02
03
<httpModules>
  <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
</httpModules>

<system.webServer> noduna aşağıdaki kodları ekleyiniz.

01
02
03
04
<validation validateIntegratedModeConfiguration="false" />
<modules>
  <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" />
</modules>

<configuration> noduna aşağıdaki kodları ekleyiniz. Bu kodlar ile istediğimiz yapıda url yönlendirme oluşturacağız.

01
02
03
04
05
<rewriter>
  <rewrite url="~/Haber-Kategorileri" to="~/Kategori.aspx" />
  <rewrite url="~/Haber/(\d+)/(.+)\.aspx" to="~/Haber.aspx?Id=$1"/>
  <rewrite url="~/Haber/(.+)/(\d+)/(.+)\.aspx" to="~/Haber.aspx?Kategori=$1&amp;Id=$2"/>
</rewriter>
  • Url adresinde birden fazla parametre kullandığımızda $1, $2, .. şeklinde kullanım sırasına göre, yönlendireceğimiz sayfaya parametre olarak aktarınız.
  • int tipindeki parametreler için (\d+), string tipindeki parametreler için (.+) kullanın.
  • Paremetreleri &amp; ile ayırın.

Kategori.aspx dosyasında haber kategorileri listeleneceği düşünülerek adres bölümünü osmancelik.com.tr/Kategori.aspx yerine osmancelik.com.tr/Haber-Kategorileri şeklinde göstereceğiz.

Haber.aspx dosyasında ise haber başlıklarını osmancelik.com.tr/Haber.aspx?Id=987 yerineosmancelik.com.tr/Haber/987/url-yonlendirme.aspx olarak göstereceğiz.

Gördüğünüz gibi id=987 gibi anlamsız bir ifadeyi tanımlamış olduğumuz /Haber/ kelimesi ve Url Yönlendirme başlığıyla tamamlayarak daha anlamlı hale getirdik.Buna benzer şekilde istediğiniz kadar yönlendirme satırını <rewriter>…</rewriter> tagları arasına yazabiliriz.

Bu şekilde web projemizde url adreslerini dilediğimiz gibi oluşturabiliriz.

Proje içerisinde haberlerin başlıklarını url adresine eklerken url için anlamsız olan karakterlerden kurtarmamız gerekmektedir. Bunun için daha önce Genişletme Metotlarım – 1 (Extension Methods) başlıklı yazıda ToURL() isimli genişletme metotunu kullanmıştık. Burada da kullanarak temiz url adresi oluşturabiliriz.

01
<a href="<%#string.Format("/Haber/{0}/{1}.aspx", Eval("Id"), Eval("Baslik").ToString().ToURL()) %>"><%#Eval("Baslik") %></a>

Tüm bu anlatılanları içeren örnek projeyi buraya tıklayarak indirebilirsiniz.

Kolay gelsin…

Detaylı bilgi için http://urlrewriter.net/index.php/support adresini inceleyebilirsiniz.

Osman ÇELİK

Yorumlar

Bu Yazıya 0 Yorum Yapılmış

Henüz yorum yapılmamış

Yorum yapabilmek için giriş yapmalısınız.

Copyright © 2010 - 2018. ERZURUM
Alexa Trafik
toplist
sanalbasin.com üyesidir
TOPlist
TOPlist
Push 2 Check
site ekle site ekle
Link ekle
yukarıya Çık