1.108 kez okundu

URLRewriting.NET ile SEO Uyumlu URL Oluşturmak

10 10 1.108 kez okundu incelendi

Bu yazımda ASP.NET ile URLRewriting.Net kütüphanesinin nasıl kullanacağımızı ve nasıl “Search Engine Optimization” URL tasarlayabileceğimizi anlatacağım.

Öncelikle URLRewriting.Net kütüphanesi IIS tarafına erişimi olmayanlar için çok kullanışlı bir araç, kütüphaneyi projemize ekleyerek başka bir işlem yapmadan kullanabiliyoruz. ISAPI Rewrite’a alternatif olarak kullanılabilir.

Öncelikle buradan kütüphanemizi indiriyoruz.
UrlRewritingNet.UrlRewriter.dll bin klasörümüze kopyalıyoruz.

References sekmesinden “Add Reference” bölümünden “Browse” sekmesine giriyoruz. bin klasörümüzün altından “UrlRewritingNet.UrlRewriter.dll” seçip ekliyoruz.

http://www.sanalkurs.net/images/dersler/urlrw1.jpg

Şimdi sıra Web.config ayarlarımızı yapmaya geldi,

<system.web> altında eğer <httpModules> etiketi var ise

<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />

yok ise

    <httpModules>
        <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
    </httpModules>

ekliyoruz.

Not: İki veya daha fazla aynı tag mevcut olursa Web.config dosyanızda hata meydana gelecektir.

Diğer ekleyeceğimiz Rewrite kurallarıdır. <configration> altına ekleyeceğimiz kuralların örneği şu şekilde dir.

<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="Default.aspx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
   <rewrites>
      <add name="SanatciDetay" virtualUrl="^~/Sanatci/(.*)/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/SanatciDetay.aspx?sanatciId=$1&sanatciAd=$2" ignoreCase=" true"/>

      <add name="AlbumDetay" virtualUrl="^~/Album/(.*)/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/AlbumDetay.aspx?albumId=$1&albumAd=$2" ignoreCase=" true"/>

      <add name="Dinle" virtualUrl="^~/Dinle/(.*)/(.*).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Dinle.aspx?parcaId=$1&parcaAd=$2" ignoreCase=" true"/>

   </rewrites>

 </urlrewritingnet>

Ayrıca </sectionGroup>’tan sonra

<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection,UrlRewritingNet.UrlRewriter"/>

ekliyoruz.

http://www.sanalkurs.net/images/dersler/urlrw2.jpg

Şimdi bir müzik portalı için yazdığım bu kuralları inceleyecek olursak;
SanatciDetay adına sahip bir kuralımız var
virtualUrl=”^~/Sanatci/(.*)/(.*).aspx” : (.*) ile işaretlenmiş yerlere QueryString’deki verilerimiz geliyor.
destinationUrl=”~/SanatciDetay.aspx?sanatciId=$1&amp;sanatciAd=$2″ : $1 $2 .. olarak giden alanlar ise QS parametrelerimizi temsil ediyor.

Örnek: http://www.muzik.com/Sanatci/12/Sagopa_Kajmer.aspx
Aslında: http://www.muzik.com/SanatciDetay.aspx?parcaId=12&parcaAd=Sagopa_Kajmer

Özet olarak virtualUrl’deki formata uygun bir giriş gerçekleştirildiği zaman destinationUrl’deki formata cevrilip ele alınıyor.

http://www.sanalkurs.net/images/dersler/urlrw3.jpg

http://www.sanalkurs.net/images/dersler/urlrw4.jpg

http://www.sanalkurs.net/images/dersler/urlrw5.jpg

Dikkat edilmesi gereken önemli noktalar:

  • Sayfalarımızda linklerimizi bu formata uygun vermememiz gerektiği
  • Resim yollarında “images/img.jpg” yerine ~/images/img.jpg” kullanmamız gerektiği (HTML img kullanıyorsanız runat=”server” etiketini unutmadan)
  • ASP.NET Ajax ScriptManager’in PostBack işleminde URL sorunu yaşadığı için çoğunlukla çalışmıyor. (Jquery, Mootools tarzı eklentiler çalışmaktadır)
  • String verileri gönderirken URL bütünlüğünü bozacak olan karakterlerin temizlenmesi.
  • Bu kütüphane hakkında yazılarım devam edecektir.

    İyi Çalışmalar diliyorum.Kaynak dosyayı indirmek için tıklayın

    Yoruma kapali.

    Barış Ozcan Facebook Sayfasi
    Barış Ozcan Twitter