IIS 7 ile Fazlalıkları Aldırabiliyoruz

ASP.NET'çilerin hep sıkıntısı olan SEO hassasiyetine sahip web adresleri üretmek, IIS 7 ile pek kolay hâle gelmiş, haberiniz var mıydı?

Son zamanlarda parlayan bir iş kolu var: SEO uzmanlığı ve danışmanlığı. SEO arama motoru optimizasyonu manasına gelip teknik bir kavram görüntüsü verse de esas olarak sanal ortamın arama motoru odaklı pazarlama faaliyetlerine işaret ediyor. Arama motorları - özellikle Google - devlerin ve cücelerin güreş meydanına dönmüş durumda.

Size bu olimpik atmosferde koçluk tavsiye edenler de çok olacaktır. Kapınızı SEO SEO diye çok aşındıranlar bulacaksınız. Web ile ilgili bir şeylere gözünüz takıldığında SEO-Friendly denen şeyin ne de çok tekrar ettiğine şahit olacaksınız.

Bu tavsiye dizilerinde en çok geçen başlıklardan birisi, temiz ve manalı URL meselesidir. Eskiden karışık kuruşuk, şifrelenmiş URL'ler prestij meselesi iken SEO ilkeleri durumu tersine çevirmiştir. Yâni Hotmail'in hâlâ devam ettirdiği şu URL yapısına mukabil:

http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=10&ct=1199394131&rver=4.5.2130.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&id=64855

şunun gibi URL'ler:

https://secure.del.icio.us/login

daha evlâ denilmektedir.

Haklıdır diyen. Çünkü arama motorları, web sayfaların içeriklerini değerlendirdiği kadar onu tarif eden bilgilerin de aydınlatıcı olmasına dikkat ediyor. Ve kaynağın adresini (URL) içeriği tarif eden bir parametre olarak ele alıyorlar.

Bu vaziyet, web mimarlarını ürettikleri sayfaların URL'lerine de dikkat etmeye zorluyor. Ne yapıyorlar? URL'deki tüm fazlalıkları atmaya ve URL'i sadece sayfayı anlaşılır biçimde tarif eden ifadelerle sınırlandırmaya çalışıyorlar. Böylece meselâ, "Yine Bir Gülnihâl" başlıklı bir yazının bulunduğu sayfaya URL'i ile ulaşabiliyoruz. Veya arşivin belirli bir tarihe ait kısmına http://siteadresi.com/arsiv/2007/05/01 diyerek ulaşabiliyoruz. Arınmış URL kullanan sitelere örnek olarak www.dobisko.com'u gösterebiliriz. Dobişko'da tüm mekan adları, iller, semtler URL'den anlaşılabilir şekilde adreslenmiş. Siteyi gezerken adres çubuğu adeta dile geliyor, konuşuyor: http://www.dobisko.com/eniyi10/balikci.

Konuşkan URL'ler Nasıl Yapılır?

Konuşkan URL'lerdeki en önemli iş, dosya uzantılarını kaldırmak. "Logon.php" veya "logon.asp" gibi dosya adlarından sondaki php ve asp'yi silmekten bahsediyoruz.

Apache sunucularda bu çok rahat yapılabiliyor. O nedenle PHP-Apache ikilisini kullanan yazılımlar genelde bunu uyguluyor.

Ya Microsoft'un IIS yazılımına mahkum olanlar ne yapsın? Yok mu ellerinden tutan, yok mu bir yol gösteren?

IIS 6 ve Öncesi İçin Çözümler

Uzantısız adresler kullanmak için iki yöntem var. Birisi paylaşımlı "hosting" ortamlarında da uygulanabilen 404 yakalama metodu; diğeri de "wildcard mapping" denen uygulama alanı dar ama nispeten daha yapısal olan bir çözüm.

404 Avı

Hep moral bozacak değil ya şu 404 "Sayfa Bulunamadı" hatası. İşte doğru kullanıldığı yerde kurtarıcı bile olabiliyor. Paylaşımlı "hosting" ortamlarında neyse ki kontrol panelleri hata dokumanlarını kontrol etmeye müsade ediyor. Hata dokumanlarından 404'ü kendi özel adresiyle değiştiren web mimarını çok güzel şeyler bekliyor! Çünkü IIS, bulunamayan sayfa için hata adresini çağırıyor ama peşine de istenen sayfanın adresini parametre olarak ekliyor. Dileyen kişi, bu hata sayfasında istediği kod kümesini çalıştırıp kullanıcıyı beklediği sayfaya yönlendirebilir. Az evvel örnek verdiğimiz Dobişko, ASP-IIS kullanmasından mütevellit, konuşkan URL standardına böyle ulaşıyor. Basit, iş gören ama "amele" kategorisinde bir çözüm.

Wildcard Mapping; Vahşi ama Yapısal

Basit. ISAPI filtrelerine bir yenisini ekleyip gelen her isteği (wildcard'dan kasıt bu: *) ASP.NET ISAPI bekçisine vermek demek. Her istekte sizin gerekli denetimleri yapıp "URL Rewrite" mi yapacaksınız artık ne yapacaksanız, yapın demek oluyor. ISAPI filtresi çözümü, web sunucu elinizde ise gayet hoş bir çözüm. Hatta bu işi daha detaylı yapan özel üçüncü taraf ISAPI filtreleri de var, satılıyor. Çözüm çok ama sunucu sizin elinizdeyse. Eğer bir "hosting" firmasının sıradan bir müşterisiyseniz bu iş için 404 avına talim edeceksiniz demektir.

Ya da durun, IIS 7'den bir şeyler diyelim size.

IIS 7'den Sonrası

IIS 7'de beklenen bir şey gerçekleşti ve ASP.NET, IIS ile kaynaştı. Ön tanımlı olarak kaynaşmış kipte çalışıyorlar. Bu kaynaşmanın doğal semeresini web.config fermanında bulabilirsiniz. Yapılandırma dosyamız artık adlı bir unsur içeriyor. Web sunucudaki bir çok ayarı web.config dosyasından yapabileceğiz demektir bu.

Yapabileceğimiz ayarlar içerisine "wildcard" sembolleriyle "handler" eşleme de giriyor, her istekte patır patır çalışan modülleri belirlemek de.

IIS 7'de uzantısız ASP.NET sayfaları kullanmak için en pratik yöntem HttpModule kullanmak. Yazacağınız özel bir modülü her istekte çalışacak şekilde ayarladıktan sonra kodunuz bayram edecek.

Ancak kod yazma zahmetinden biraz kurtulmak isteyenlere açık kodlu bir tavsiyemiz var: UrlRewriter. Gayet efendi, işini düzgün yapan bir uygulama. Avantajı şu ki sadece web.config dosyasına yazacağınız laflarla URL gölgeleme işlerini hallediyorsunuz. Uygulama kodunuza eklemeler yapmanıza hiç lüzum yok.

Hâsılı...

IIS 7, Vista ve Windows 2008'in parçası. ASP.NET ile bütünleşmesi gayet güzel. Konuşkan URL'ler yapmak da epey kolaylaştı. Deneyin.

SEO ile.

, ,

Arşivden

“IIS 7 ile Fazlalıkları Aldırabiliyoruz” için şu yorumlar var:

  1. ressam: []
    Bu kadar yararlı bir makaleye yorum yazmamak olmazdı. Teşekkürler.
  2. Önder: []
    IIS7 ile urlrewriter sınıfını kullanırken herhangi bir ek ayar yapmamız gerekicek mi? Bu fazlalıkları atma olayı başıma bela oldu. :)
  3. Muhammed Tahiroğlu: []
    http://www.improve.dk/blog/2006/12/11/making-url-rewriting-on-iis7-work-like-iis6 adresindeki metodla bu işi halletmiş bir kardeşimiz.

Yorum yazabilirsiniz


* [b], [i] ve [quote] serbest