Bu yazı 2013’te, IIS için URL Rewrite modülünün indirme linkini paylaştığım kısa bir nottu. Linkler çoktan öldü ama konu ölmedi; URL yapısı hala hem SEO’nun hem güvenliğin sessiz kahramanı. Yazıyı, URL Rewrite’ın ne olduğunu ve IIS üzerinde nasıl kurulup kullanıldığını anlatan derli toplu bir rehbere çevirdim.

URL Rewrite nedir, derdimiz ne?

Dinamik bir web uygulamasında sayfa adresleri doğal halinde pek iç açıcı değildir:

https://siteniz.com/makale.aspx?articleID=1234&kategori=7

URL Rewrite, bu adresi kullanıcıya ve arama motoruna şöyle göstermenizi sağlar:

https://siteniz.com/1234/url-rewrite-nedir

Arka planda çalışan sayfa aynı; değişen şey adresin sunum şekli. Kazanç iki yönlü. SEO tarafında Google, içeriği anlaşılır adresleri olan sayfaları daha rahat anlamlandırır ve kullanıcılar da tıklamadan önce nereye gittiklerini görür. Güvenlik tarafında ise querystring parametreleriniz vitrine çıkmaz; articleID=1234 gibi parametreleri adres çubuğunda sergilemek, kötü niyetli birine sistemin iç yapısı hakkında bedava ipucu vermektir.

IIS’e URL Rewrite modülü kurulumu

Modül IIS’in içinde hazır gelmez, ayrıca kurulur. İki pratik yol var:

1. Microsoft’un sayfasından indirme: iis.net/downloads/microsoft/url-rewrite adresinden güncel sürümü indirin ve kurulumu çalıştırın. Eski yazıda x86 ve x64 için ayrı linkler paylaşmıştım; bugünkü kurulum paketi ikisini tek pakette hallediyor.

2. Web Platform Installer yerine winget: Sunucularda artık komutla kurulumu tercih ediyorum; PowerShell’de winget install "IIS URL Rewrite Module" araması da sizi aynı pakete götürür.

Kurulumdan sonra IIS Manager’ı kapatıp açın; site seviyesinde URL Rewrite simgesini görüyorsanız modül hazır demektir.

İlk kuralınızı yazalım

Kurallar web.config dosyasında saklanır. En sık ihtiyaç duyulan örnek, tüm HTTP isteklerini HTTPS’e çevirmek:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="HTTP to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
          <add input="{HTTPS}" pattern="off" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

Kuralın okunuşu şöyle: her isteği yakala, HTTPS kapalıysa aynı adresin https’li haline kalıcı olarak yönlendir. IIS Manager’daki arayüzden de aynı kuralı tıklayarak oluşturabilirsiniz; arayüz ürettiği XML’i web.config’e kendisi yazar. Ben karmaşık pattern’lerde arayüzdeki Test pattern aracını kullanmayı severim, regex’in ne yakaladığını kurala bağlamadan önce görürsünüz.

Rewrite ile Redirect farkına dikkat

İki kavram sık karışır. Redirect, tarayıcıya git buraya der; adres çubuğu değişir. Rewrite ise isteği sunucu içinde sessizce başka bir hedefe taşır; ziyaretçi adres değişimini görmez. SEO amaçlı taşımalarda Redirect (301), dinamik adresi güzelleştirmede Rewrite kullanılır. Hangi durumda hangisinin gerektiğini karıştırırsanız Google’ı da ziyaretçiyi de şaşırtırsınız.

Toparlayalım

  • URL Rewrite, çirkin querystring’li adresleri okunabilir ve SEO dostu adreslere çevirir.
  • IIS’te modül ayrıca kurulur; kurulum sonrası kurallar web.config’te yaşar.
  • En pratik başlangıç kuralı HTTP’den HTTPS’e yönlendirmedir.
  • Adres çubuğunu değiştirmek istiyorsanız Redirect, gizlemek istiyorsanız Rewrite.

Web sunucusu tarafıyla ilgili dedicated server nedir yazıma da bakabilirsiniz. Takıldığınız kural olursa yorumlarda buluşalım.

Yorum Bırakın