Asp.Net Url Rewrite sonrası oluşabilecek hatalar

Merhaba Arkadaşlar bu makalemde Web.Config üzerinde seo dostu link rule'ları oluşturduktan sonra oluşabilecek görüntüleme sıkıntılarından bahsedeceğim. Senaryo 1
Visual Studio Solution Explorer üzerinden sayfaya sürükle bırak yöntemiyle bırakılan resimler html çıktısı şu şekildedir.

<img alt="" src="resimler/deneme.jpg" />

url adresi url rewrite yapılmış bir sayfada bu resim görüntülenmicektir. Çünkü resim bulunan sayfa + kendi resim yolunda aramaya çalışacaktır.
Örnek vermek gerekirse şöyle bir url adresinde http://www.kodstrap.com/tr/anasayfa/resimler/deneme.jpg tr ve anasayfa isimli klasör var gibi algılayıp göstermeye çalışıp gösteremeyecektir.

Bunun çözümü ise çok basit. resim yolu başına Slash " / " koyuyorsunuz artık root dizinden başlayarak resimler klasör yolunu arıyor ve resmi gösteriyor.

Senaryo 2
Girmiş olduğunuz resim yollarının Web.Config üzerinde bir rule ile örtüşmesi.
Yani. Web.Config üzerinde şöyle bir rule olsun.

<rule name="proje">
           <match url="^([a-z]+)/project/(.*)-([0-9]+)">
                      <action appendquerystring="false" type="Rewrite" url="/proje-detay.aspx?lang={R:1}&amp;D={R:3}"> </action>
            </match>
</rule>

Rule'u açıklamak gerekirse. ([a-z]+) a'dan z'ye harflerle başlayan project kelimesiyle devam eden tüm linkleri yeniden yönlendir. Bir tanede bu rule'a uyan link vereyim.

/tr/project/deneme-projesi-6

Aşağıdaki gibide bir resim yolumuz var

<img alt="" src="/uploads/project/deneme-1.jpg" />

Üstteki resim yolu verdiğim proje rule'u ile örtüşüyor.
uploads - ([a-z]+),
project - project,
deneme - (.*),
1 - ([0-9]+)
dolayısıyla resim yolunu bir url adresi zannediyor ve proje-detay.aspx isimli sayfaya yönleniyor resim yolu.
Bunu engellemenin 1. yolu resmi project klasöründen kaldırmak yok ben kaldırmak istemiyorum diyorsanız. Web.Config'te en üst rule satırına aşağıdaki rule'u yapıştırmak

<rule enabled="true" name="Block Images" stopprocessing="true">
            <match url=".*\.(gif|jpg|jpeg|png|bmp)$">
                      <conditions> <add input="{HTTP_REFERER}" negate="true" pattern="^$"> </add></conditions>
             </match>
</rule>

Yukarıdaki rule'da anlatılan basitçe söylemek gerekirse match url'de belirtilen uzantıları url rewrite yapma diyoruz.

İyi Kodlar