Arama Motoru Optimizasyonunda (SEO) büyük öneme sahip olan sayfa isimleri artık sanal yönlendirmeler yapılarak daha anlamlı olabiliryor.
Örneğin: Web sayfanızda içerik.aspx isimli sayfada QueryString ‘den gelen id’ ye göre içerik görüntülüyorusunuz.Muhtemelen sayfa adresiniz aşağıdakine benzer olacaktır.
http://www.sayfaadresi.com/icerik.aspx?IcerikId=5
Url Rewriting yöntemi ile sayfa ismine içeriğe ait başlık ismini verebilirsiniz.Örneğin yukarıdaki örnekte id’si 5 olan içerik görüntülenecek. Bu içeriğin başlığının “Interner Explorer 8 Çıktı!” olduğunu varsayalım. Ozaman;
http://www.sayfaadresi.com/internet-explorer-8-cikti.aspx
şeklide bir sayfa ismi vermek her zaman daha mantıklı olacaktır. Sebebi basit arama motolarında aratılan kriter eğer sizin sayfanızın adresinden yani herhangi bir sayfa isminde bulunursa bu sonuç daha üst sıralarda yer alacatır.
Visual Studio ile yeni bir website başlatalım ve bu yapıyı nasıl oluşturacağımıza bakalım.
Yukarıki şekilde basit bir içerik tablomuz olsun.Unutmayın burda yapmak istediğimiz içeriğin başlıklarını sayfa ismi olarak göstermek. Öncelikle başlıkları sayfamızda gösterelim. Bunun için Default.aspx’e Repeater bırakın ve new data source diyerek icerik tablomuzun id ve baslik kolonlarını seçin.
SqlDataSource’unuzun SelectCommand’ını aşağıdaki gibi düzenlemeyi unutmayın.İçerik başlıklarımız arasındaki boşlukların yerine tire koyuyoruz.
Çalıştırıp Test ettiğinizde icerik adreslerine dikkat edin. Tabiki bizim böle bir sayfamız yok linke tıkladığınız anda safya bulunamadı hatası alırsınız.
Burada dikkat etmeniz gereken bir başka nokta ise sayfa linklerinde .aspx ‘ten hemen önce o içeriğin id’sinide taşıdık. Bu şeklide hangi içeriği göstermemiz gerektiğinede biliyor olacağız.
Not: Burada sayfa uzantısı olarak .aspx kullandık siz farklı uzantı kullanabilirsiniz. Fakat websayfanız IIS 6.0 üzerinden yayınlanıyor ise wildcard oluşturup yazdığınız uzantı için isapi_filter’ı göstermeniz gerekir. Bunuda Default WebSite Properties ekranında, Home Directory tabında configuration diyin ve oradanda Mappings tabında Add diyerek ekliyebilirsiniz. Bunu yapmamızın sebebi IIS 6.0 görüntülenmek istenen sayfanın çalıştırılma şekli sayfa uzantısından belirleniyor olması. Örneğin siz uzantı olarak .html verirseniz bu sayfayı normal HTML sayfası gibi açmaya çalışacaktır ve hata verecektir. Aşağıdaki örnekteki gibi Application Extention Mapping eklerseniz artık .html uzantılı dosyalarda aspx gibi yorumlanacaktır.
Eğer Web sayfanız IIS 7.0 üzerinde görüntüleniyor ise işiniz daha kolay. Sayfanızın web.config dosyasında ufak bir değişiklik yaparak sorunu çözebilirsiniz.
<system.webServer>
<modulesrunAllManagedModulesForAllRequests="true">
modules>
system.webServer>
Bu kodu yazmanız yeterli.
Tabiki eğer uzantı olarak .aspx kullandıysanız yukarıda anlattığım IIS ile ilgili ayarları yapmanıza gerek yok.
Şimdi içerik sayfamızı hazırlayalım.
Web Site>Add New Item diyerek yeni bir sayfa ekleyin ve ismine icerik.aspx diyelim.
Bu sayfanın görevi QueryString’de id’si gelen içeriği sayfada göstermek.
Bunun için icerik.aspx’e Repeater bırakalım.
Kodunuzu yukarıdaki şekilde düzenleyin. SqlDataSource’da sadece icerik kolonundaki değeri aldık falan QueryString’deki IcerikId değişkeninin taşıdığı id’ye ait içeriği getirmiş olacağız.
İçerik sayfamızıda hazırladık fakat bizim default.aspx’deki linklerimiz icerik.aspx sayfasına yönlendirme yapmıyor sanal olarak icerik başlıklarını kullananarak belirttiğimiz sayfalara yönlendirme yapıyor.İşte burada RewritePath diyerek bu sorunuda çözmüş olacağız.
WebSite>Add New Item diyerek Global Application Class( Global.asax) dosyasını ekleyin.
Global.asax class’ı uygulamanıza ait özel event’lerin bulunduğu bir class’dır. Burada bizim kullanacağımız event ise BeginRequest eventi olacaktır. Yani uygulamamıza her istek yapıldığında bir nevi her linke tıklandığınıdada diyebiliriz çalışan bir event’tir.
Soldaki Combobox’tan Application’ı seçelim ve Sağdakinden BeginRequest’i seçelim. Application_BeginRequest eventini bizim için oluşturacaktır.
İşte buraya aşağıdaki kodu yazın:
Böylece artık sayfalarınız dinamik olarak icerik başlıklarında geliyor olacak ve böylece arama motoru sonuçlarında üst sıralarda yer almanıza yarıyacaktır.