27 Ağustos 2011 Cumartesi

Asp.net Url Rewrite

.Net tabiriyle Url Rewrite yada drupal tabiriyle Clean URL,adres çubuklarındaki querystringleri dizin haline dönüştüren bir yapı ve bu yapıyı google çok seviyor.
Örneğin site adresi urun.aspx?id=2&adi=telefon3210 gibi olsa google aynı sayfayı defalarca indexlemek istemiyor bu nedenle Url adreslerimiz şöyle olsa çok iyi olur urun/2/telefon3210.html
şimdi bu Url rewrite olayını asp.net üzerinde kolayca yapabileceğimiz bir kütüphane var Intelligencia.UrlRewriter isimli bir kod kütüphanesi mükemmel sonuçlar üretiyor.
öncelikle adım adım işlemlerimizi yapalım.
1. Intelligencia.UrlRewriter.dll kütüphanesini bulup indirelim.
2.dll dosyasını bin dizini altına koyalım
3.visual studio proje kısmında references bölümüne girelim ve add referans diyerek bin dizini altındaki referans dosyasını projemize ekleyelim
4.Web.config dosyasını düzenleyelim.
en basit haliyle web.config dosyası aşağıdaki gibi olmalı kırmızı renkli alanlar web.config dosyasına eklenmeli etiketlediğim yerlerin nerde olduğu önemli.  Örneğin   etiketi altında olmalı ise dışında olmalı gibi..

 



------------------------------------------------------------------------------------------------------
(web.config içeriğini copy paste ile yapıştırınca blogger kodları bozuyor bende resmini çekip koydum artık baka baka yazarsınız.)

Burada şu alana dikkat çekmek isterim;

rewrite url ile $1 ,$2 ile gelecek parametre değerlerini gösteriyorsunuz. sonra onları (.*) ifadesiyle yeniden şekillendiriyorsunuz. en son sayfalarımızın uzantısı html olarak değiştiriyoruz fakat bu işlem eğer toplu hosting kullanacaksınız çalışmayabilir.çünkü html uzantıları asp.net derleyemez  IIS panelde girip düzenleme yapmak gerekecek yada uzantıyı .aspx olarak değiştirebilir yada hiç bir şey yazmadan sanki sanal dizindeki default.aspx çalışıyormuş gibi gösterebilirsiniz.

redirect Url ise bir sayfayı başka bir sayfaya çevirmeyi sağlıyor. Böylece çok kullanılan giris.aspx sayfaları uzantılarından kurtarabileceksiniz.

Kod yazmıyor muyuz?
-Ne kodu yazı bu kadar :)

8 yorum:

  1. 500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.
    -----------------------------------------
    sunucuya atıldığında eğer bu hatayı alan olursa web configde bazı düzenlemeler yapmak gerekli
    httpModules etiketi IIS7 ile birlik te kullanımı değişmiş. httpModules etiketini system.web içinden çıkarıp silin . system.webServer isimli yeni bir etiket açın ve onun içine modules etiketini açın işte buraya modül eklenecek.

    |system.webServer|
    |modules|
    add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/
    |/modules|
    |/system.webServer|
    ***| karakteri < karakterleri yerine kullanılmıştır.blogspot izin vermiyor o karakterlere a.q

    YanıtlaSil
  2. hocam allah razı olsun 500 internal hatası veriyordu alttaki verdiğiniz not sayesinde çözdüm çok teşekkür ederim..

    YanıtlaSil
  3. Sağolun sizdende Allah Razı Olsun Böyle dua etmeniz çok güzel valla insanın işi gücü bırakıp makale yazası geliyor. :)

    YanıtlaSil
  4. Parser Error Message: Could not load file or assembly 'Intelligencia.UrlRewriter' or one of its dependencies. Sistem belirtilen dosyayı bulamıyor.


    böyle bir hata alıyorum. dll i ekledim web config de herşey tamam neden çalşmıyor ?

    YanıtlaSil
  5. Parser Error Message: Could not load file or assembly 'Intelligencia.UrlRewriter' or one of its dependencies. Sistem belirtilen dosyayı bulamıyor.


    böyle bir hata alıyorum. dll'i ekledim webconfig tamam. neden hata alıyorum ?

    YanıtlaSil
  6. Woah! I'm really digging the template/theme of this website. It's simple, yet effective.
    A lot of times it's difficult to get that "perfect balance" between superb usability and appearance. I must say you've done a excellent job with this.
    In addition, the blog loads extremely fast for
    me on Chrome. Outstanding Blog!

    Here is my web-site; laser cellulite treatment

    YanıtlaSil
  7. hocam söylediğiniz şekilde yazdım fakat olmuyor.Hatada vermiyor,url de değişmiyor.Sorun nerede olabilir?

    YanıtlaSil
  8. bu uygulamayı .net uyumlu sunucuya gönderip deneyin.localde verimli çalışmayabiliyor. IIS üzerinde denenmesi lazım.

    YanıtlaSil