Asp.NET ile URL Rewrite
Bir süredir yoğunluk sebebiyle ilgilenemediğim makale yazma işini bugün bulduğum ilk boşlukta yaptım. Çok rahatlatıcı, öneririm. :)
http://sunali.com/blog/archive/2005/08/23/44.aspx adresine incelendiğinde sırasıyla “blog/archive/2005/08/23” klasörleri oluşturulmuş ve bu klasörün içerisinde de “44.aspx” isminde bir dosya olması gerektiğini düşünebilirsiniz. Fakat böyle bir zorunluluk yoktur. Asp.Net üzerinde bulunan bir interface’i kullanarak belirtilen adresin – URL kısmında kullanıcının yazdığı adres değiştirilmeden kaldığı halde – başka bir adrese yönlendirilmesini sağlayabilirsiniz.
Makalenin devamını http://www.yazgelistir.com/Makaleler/1000000790.ygpx adresinde okuyabilirsiniz.
bu güzel makale için teşekkür ederiz. Url rewrite bazan çetrefil olabilmekte. Bu konudaki karşılaşılan veya karşılaştığınız sorunlar ve çözümleri ile ilgili önerilerinizi paylaşırmısınız?
Selam,
Öncelikle fikirlerinizi belirttiğiniz için ben teşekkür ederim.
Yaşanılabilen sorunlardan bir tanesi, tarayıcıların http://localhost/1/2/3/4.aspx olarak rewrite edilmiş bir URL’de, src özelliği “a.jpg” olarak verilen bir resmi http://localhost/1/2/3/a.jpg olarak aramasıdır.
Bu sorunu ise src özelliğini “/a.jpg” olarak verdiğinizde aşabilirsiniz. Path özelliklerinin başına tek bir / koyulması, bu path’in aranması işlemine root üzerinde başlanması gerektiğini tarayıcılara bildirmektedir.
Aklıma gelen başka özel bir sorun yok. Eğer sizin yaşadığınız bir durum varsa, sorunu çözmeye çalışalım.
İyi çalışmalar.
Bahsettiğiniz sorunla ben de karşılaştım ben de tüm imajların kaynağını server tarafında kaynağını tam vererek çözdüm. örneğin root altındaki grafik kalsöründeki a.jpg için http://www.siteurl.com/grafik/a.jpg. bunu server tarafında kendim belirtiyorum. Biraz zor oluyor ama sağlam bir yöntem.
yine response.redirect lerde sorun çıkıyor. bunu yine aynı şekilde server tarafında full url yazarak çözüyorum..
Selam,
Dediğim gibi src=”/grafik/a.jpg” şeklinde kullansanız, işinizi görmüyor mu?
Bir de, Response.Redirect’lerde nasıl bir sorun çıkıyor?
Teşekkürler.
response.redirect te de yine grafiğin kaynağını verirken karşılaştığımız sorunla karşılaşmıştım. daha çok asp.net 1.1 de vardı bu sorunlar. çünkü asp.net 2.0 da master page ile biçok şey sorunsuz çalışıyordu. asp.net1.1 usercontrol ler üzerinden yapmaya çalıştığımız için herşeyi, daha karmaşık ve içiçe bi yapı vardı.
sizin sitenizde olduğu gibi dosyanın uzantısını da saklayabilirmiyiz? asp.net bunun için sanırım sunucu üzerinde bir takım şeyler yapmak lazım. yazılımsal olarak sağlanamıyor. çünkü asp.net te dosya ismini vermeden klasör adını yazınca url ‘e , direk olarak klasör içerisinde default.aspx , default.htm dosyalarını arıyor. bulamazsa sayfayı bulamadım diyor. bu işlemi iis yapıyor. eğer bulursa default.aspx’i , ilgili sayfayı çalıştırıyor. rewrited page de olabilir bu.
Selam,
Sitemdeki yazılım PHP ile yazılmış ve benim geçiçi olarak kullandığım bir yazılım. PHP bilgim de olduğu için biraz kişiselleştirdim.
ASP.NET ile dediğiniz olayı yapmak mümkün. Yalnız bunun için ISAPI ile ilgili kodlar yazmanız gerekiyor.
Google’da aratmanız durumunda birçok örnek çıkacaktır diye tahmin ediyorum.
Peki asp.net formunun action adresi? bu durumda değişmeyecektir(benim hatırladığım kadarıyla tabi). bir çok durumda sorun yaratabilir…
Bunun için de google da arattığımızda çeşitli örnekler mevcut
Tuna Bey,
Öncelikle geç cevap verdiğim için özür dilerim.
Bahsettiğiniz durum için System.Web.UI.HtmlControls.HtmlForm class’ını base alarak Form class’ını kendiniz tanımlamalı ve System.Web.UI.HtmlTextWriter class’ının “WriteAttribute” methodunu kullanarak “action” özelliğini kendiniz tanımlamanız gerekmektedir.
Umarım fikir işinize yarar.
Selamlar Coşkun Bey,
Merak ettiğim bir konu var;
Neden URL Re-write konusunda MSDN de dahil olmak üzere bir tane bile VB.NET ile yazılmış kod yok? Ben bu kodu vb.net ile yazmayı başaramadım ne yazık ki…
Konu hakkında fikirlerinizi bekliyorum…
Selamlar…
http://www.urlrewriting.net/en/Default.aspx
bu adresteki modülü kullanabilirsiniz. Test ettiğimde sorunsuz çalışıyordu. fakat file extesion olmadan çalışması için server da klasörleri default.aspx i açacak şekilde ayarlamak gerek. action sorunu için şu linke bakabilirsiniz:
http://weblogs.asp.net/jezell/archive/2004/03/15/90045.aspx
Selam, bu bilgileri bizlerle paylaştığınız için teşekkür ederim. Ben biraz daha ileri götürerek bunları html uzantısına çevirdim. Local de sorunsuz çalışırken server da hata vermekte. Uzantıyı aspx yaptığımda ise düzelmekte.
Yani 287-hava-sicakliklari.html de hata verirken
287-hava-sicakliklari.aspx çalışıyor.
Localde her ikiside çalışıyor. Nedeni nedir acebA? Kolay gelsin iyi çalışmalar.
Ahmet Ertek arkadaşım senin sorunun sunucu ile ilgili.
şu adreste sunucu sahibinin yapması gereken ayarlardan bahsetmiş.
http://www.kodaman.org/yazi/asp-net-te-url-rewriting
Teşekkürler açıklamalarınız için