Bu yazımda modülün kurulumu ve kullanılmasıyla ilgili bilgi vermeye çalışacağım.
Kurulum
x86 vista ve 2008 server için Microsoft URL Rewrite Module 1.1 for IIS 7 (x86) : Download : The Official Microsoft IIS Site adresinden,
x64 vista ve 2008 server için Microsoft URL Rewrite Module 1.1 for IIS 7 (x64) : Download : The Official Microsoft IIS Site adresinden modülümüzü bilgisayarımıza indirip kuruluma geçiyoruz.
eğer daha önceden 1.0 versiyonunu kurmuş iseniz, her hangi bir değişiklik yapmanıza gerek yok. Kurulum önceki versiyonu kaldırıp yerine yenisini kuracaktır.
Yeni versiyonun kurulmasından sonra bilgisayarımızın yeniden başlatılmasını istemiyorsak, aşağıdaki komutu, komut satırına yazarak kullanabilirsiniz.
net stop was /y & net stop wmsvcKurulum işlemi tamamlandıktan sonra, (bilgisayarımızı yeniden başlatmadıysak) aşağıdaki komutları, komut satırına sırasıyla yazarak iis'yi yeniden başlatalım.
net start w3svc
net start wmsvcartık yeni kurallar yazarak urlrewite modülü kullanıma hazır.
ReWrite kuralı yazalım
makale.aspx adlı bir asp.net sayfası oluşturalım ve root klasörümüze kaydedelim.
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>URL Rewrite Module Test Sayfası</title> </head> <body> <h1>URL Rewrite Module Test Sayfası</h1> <table> <tr> <th>Server değişkeni</th> <th>Değer</th> </tr> <tr> <td>Orijinal URL: </td> <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td> </tr> <tr> <td>En son URL: </td> <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td> </tr> </table> </body> </html>Dosyamızı kaydetdikten sonra, http://localhost/makale.aspx yazarak sayfamızın düzgün çalışıp çalışmadığını kontrol edelim. (Eğer adres satırımız localhost dışında bir adres içerecekse localhost kısmına doğru adresi yazın)
http://localhost/makale/452/makale-basligi-buraya.html
sayfası çağırıldığında;
http://localhost/makale.aspx?id=452&...basligi-buraya adresinden makalemizin görüntülemesini için kural yazacağız.
- IIS Managerı açalım
- Siteler kısmından web sitemizi seçelim
- özelikler kısmında Url Rewrite simgesi bulup çift tıklayalım
- Sağ üst köşeden Add Rules (Kural Ekle)'ye tıklayalım.
- Açılan pencerede hangi şablonda kural eklemek istediğimiz sorulacak, biz blank rule (boş kural)'ı seçerek tamama tıklayalım.
- Edit role penceresine ulaştık,
Name(İsim) kısmı bizim içindir. yani yazılacak kelime ya da kelimeler bize kural için ipucu verecektir. Yazacağımız kelimede serbestsiniz. Ancak aynı ismi iki farklı kuralda kullanamazsınız. Bundan sonra eklenecek kurallar için yeni isim kullanmanız gerekecektir. Ben bu bölüme makale adını verdim.
Requested Url bölümünden mathes the pattern yazan, Using bölümünde ise Regular expression varsayılan şekilde seçilmiş olmalıdır. Bu bölümlerde başka bir seçenek seçilmişse düzeltin. - Pattern bölümüne web adresimizi yeniden yazmak istediğimiz regular expression kodumuzu yazıyoruz.
^makale/([0-9]+)/([_0-9a-z-]+)
bu kod ile
- içerisinde makale/0-9 arası rakamlar/0-9 arası rakamlar, a'dan z'ye harfler ve - içeren url çağırıldığında kuralımız devreye girecektir. - Rewite URL yazan yere hangi sayfaya yönlendireceğimizi yazıyoruz
makale.aspx?id={R:1}&baslik={R:2}
buradaki {R:1} Regular expression eşleşmesi yapan ilk bölümü temsil eder, ikinci / (slash) işareti arasında kalan sonucu belirtir. Biz bu bölümü 0-9 arası rakamlardan oluşacağını belirtmiştik. makale.aspx dosyasına id query stringi olarak gönderiyoruz.
{R:2} ise kurala yazdığımız son regular eşleşmesini verecektir ([_0-9a-z-]+) bu değerde makale.aspx dosyasına baslik query string'i olarak gönderilecektir. - sağ üst köşede bulunan Apply tıklayarak kuralımızı kaydedelim.
- Back to rules (Kurallara geri dön)'e tıklayarak URL Rewrite modülümüzde kuralımızın eklendiğinden emin olalım.
- Şimdi tarayıcımızın adres satırına yazalım http://localhost/makale/452/makale-basligi-buraya.html
- Açılan sayfada;
- orijinal url bölümünde /makale/452/makale-basligi-buraya.html
- en son url bölümünde makale.aspx?id=452&baslik=makale-basligi-buraya yazdığını göreceksiniz.
<system.webServer> <rewrite> <rules> <rule name="makale"> <match url="^makale/([0-9]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="makale.aspx?id={R:1}&baslik={R:2}" /> </rule> </rules> </rewrite> </system.webServer>kodlarının eklenmiş olduğunu görürsünüz. Kuralları isterseniz direk Web.Config dosyasına da yazabilirsiniz. UrlRewrite modülünün arayüzünün artılarından birisi Test Pattern özelliği ile yazdığınız kuralın istediğiniz gibi çalışıp çalışmadığını kontrol edebilme imkanını tanımasıdır.
Gelecek makalemde UrlRewrite ile devam etmeyi planlıyorum.