Posts Tagged ‘UrlRewriting’
Urlrewriting.Net ‘i ayarlamak
Urlrewriting.Net, web sayfalarımızda url adreslerimizi değiştirmemizi, daha kullanıcı dostu yapmamızı sağlayan bir komponenttir. Bu komponent’i http://www.urlrewriting.net adresinden indirebiliyoruz.
Bende size komponent’in nasıl projemize dahil edebileceğimizi anlatmak istiyorum.
Öncelikle indirdiğimiz dosyanın içindeki ddl dosyasını projemizin referanslarına ekliyoruz. Sonra web.config içerisinde aşağıdaki değişiklikleri yapmamız gerekiyor.
1. configSections altına aşağıdaki satırı ekleyelim:
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission ="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter" />
2. system.web altındaki httpModules altına aşağıdaki satırı ekleyelim:
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
3. </configuration> satırından önce aşağıdaki satırları ekleyelim.
<urlrewritingnet
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage = "default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<!—kuralları buraya yazacağız. -->
</rewrites>
</urlrewritingnet>
4. yönlendirmek istediğimiz her bir sayfa için bir kural oluşturmamız gerekiyor. Veya regex kullanarak birden fazla sayfa içinde kurallar oluşturabiliriz. Bu kurallar 3. adımda eklediğimiz urlrewritingnet başlığı altındaki rewrites başlığı altına eklememiz gerekmekte. Örnek olarak oluşturduğum bir kural aşağıda gösterilmiştir.
<add name="Rewrite01" virtualUrl="^~/([a-z]{2}-[a-z]{2})/(.*)_([0-9]+).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/PageSystem.aspx?lang=$1&pid=$3"
ignoreCase="true" />
bu kural ile http://alper.konuralp.gen.tr/tr-TR/GirisSayfasi_12.aspx sayfasını açmaya çalıştığınızda arkada http://alper.konuralp.gen.tr/PageSystem.aspx?lang=tr-TR&pid=12 sayfasını çağırmış olmakta.
İyi Çalışmalar
UrlRewriting.Net
UrlRewriting.Net Asp.Net Uygulamalarında Apache rewrite modunun işlevselliğini kullanmamızı sağlıyor. Bu komponent’te kullandığımız kurallarda dikkat etmemiz gereken bir nokta var.
Birbirini kapsayan kurallar oluşturacaksak en alt seviyeyi kural sıralamasında en üste almamız lazım.
Örneğin :
<add name="rCozumler1" virtualUrl="^~/(.*)/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/default.aspx?Ana=$1&alt=$2"
ignoreCase="true" />
<add name="rCozumler2" virtualUrl="^~/(.*)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/default.aspx?Ana=$1"
ignoreCase="true" />
Şeklinde hazırlayacağımız kurallar ile aşağıdaki gibi bir adresi kullanabiliriz:
http://www.deneme.com/dersler/matematik/
Esasında bizim için:
http://www.deneme.com/default.aspx?Ana=dersler&alt=matematik
Anlamına gelecektir. Aynı şekilde
http://www.deneme.com/dersler/
ise
http://www.deneme.com/default.aspx?Ana=dersler
anlamına gelecektir. Ama eğer yukarıdaki kurallar sıralama olarak ters yazmış olsaydık, her iki adreste ilk kurala uyacağı için 1. örneğimiz şu şekilde çalışacaktı
http://www.deneme.com/default.aspx?Ana=dersler/matematik
2. örnek ise doğru olarak çalışacaktı.
Eğer kuralları oluştururken yukarıda belirtmiş olduğum noktaya dikkat ederseniz, istediğiniz bir çok şeyi urlrewriting ile gerçekleştirmeniz mümkün olacaktır.
