Son gözden geçirme: Eylül 2026 · IIS 10 URL Rewrite resmî dokümanına göre, Plesk Obsidian 18.0 menü yolu panelde doğrulandı
Hızlı çözüm
web config 301 yönlendirme için sitenin kök klasöründeki web.config dosyasına, mevcut <system.webServer> bölümünün içine bir URL Rewrite kuralı eklenir ve kurala redirectType="Permanent" verilir.
web.config dosyasının yedeğini indirin.<rewrite><rules> bloğunu <system.webServer> içine yapıştırıp kaydedin.curl.exe -I ile yanıtın 301 döndüğünü doğrulayın.| Panel | Plesk (Windows hosting) ya da IIS Yöneticisi (VDS) |
|---|---|
| Sistem | IIS 10, Windows Server 2019/2022 |
| Yetki | Plesk abonelik kullanıcısı ya da sunucuda Administrator |
| Narhost ürünü | Windows Hosting |
Başlamadan önce
web.config dosyasını bilgisayarınıza indirin. XML’deki tek bir yazım hatası bütün sitenin 500 hatası vermesine yol açar.Test-Path "$env:windir\System32\inetsrv\rewrite.dll" komutu True dönmelidir.IIS .htaccess dosyasını okumaz; Linux hostingdeki yönlendirme kurallarının Windows karşılığı web.config dosyasıdır. 301 kalıcı taşındı anlamına gelir: tarayıcı ve arama motoru eski adresi bırakıp yeni adrese geçer, sıralama da zamanla yeni adrese aktarılır. Sayfa adı değiştiğinde, alan adı taşındığında ya da SSL sonrası HTTP trafiğini HTTPS’e çekerken kullanılır.
URL Rewrite yapılandırma başvurusuna göreredirectType dört değer alır: Permanent (301), Found (302), SeeOther (303) ve Temporary (307). Kalıcı taşımada yalnız Permanent kullanın. cPanel’li Linux hostingte aynı iş için bkz. cPanel’de 301 yönlendirme.
httpdocs klasörüne girin, web.config satırındaki menüden Edit in Code Editor seçin. Plesk bu dosyayı hata sayfaları için kendisi oluşturur; içinde zaten bir <system.webServer> bölümü vardır. VDS’te dosya sitenin fiziksel yolundadır (varsayılan site için C:\inetpub\wwwroot).
<system.webServer> açmayın; <rewrite> bloğunu var olanın içine ekleyin.
<configuration>
<system.webServer>
<httpErrors> ... </httpErrors>
<rewrite>
<rules>
<!-- kurallar buraya -->
</rules>
</rewrite>
</system.webServer>
</configuration>
Beklenen sonuç: dosyada tek bir <system.webServer> ve onun içinde tek bir <rules> listesi bulunur; aşağıdaki kurallar bu listeye eklenir.
match url değeri alan adından sonraki yoldur ve baştaki / işaretini içermez.
<rule name="eski-sayfa-301" stopProcessing="true">
<match url="^eski-sayfa\.html$" />
<action type="Redirect" url="/yeni-sayfa/" redirectType="Permanent" />
</rule>
Beklenen sonuç: /eski-sayfa.html isteği /yeni-sayfa/ adresine 301 ile gider.
<rule name="https-301" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
Beklenen sonuç: http:// ile gelen her istek aynı yolun https:// sürümüne gider.
<rule name="alan-adi-301" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)?eski-ornek\.com$" />
</conditions>
<action type="Redirect" url="https://www.ornek.com/{R:1}" redirectType="Permanent" />
</rule>
Yalnız www ile www’suz sürümü birleştirecekseniz kural yazmanız gerekmez: Plesk’te Hosting Settings → Preferred domain alanı aynı işi 301 ile yapar.
web.config dosyasına koymayın, döngü oluşur.
<httpRedirect enabled="true" destination="https://www.ornek.com" httpResponseStatus="Permanent" />
Sonuç
Kendi bilgisayarınızda curl.exe -I http://ornek.com/eski-sayfa.html komutu HTTP/1.1 301 Moved Permanently ve doğru Location satırını döndürüyorsa web config 301 yönlendirme çalışıyordur. Tarayıcıda denerken gizli pencere kullanın; tarayıcılar 301 yanıtını önbellekte tutar.
<system.webServer> ya da kurulu olmayan URL Rewrite modülü vardır. Yedeği geri yükleyin ve kuralları tek tek ekleyin.Narhost desteği
Talebe şunları ekleyin: alan adınız, yönlendirmek istediğiniz eski ve yeni adres, curl.exe -I çıktısı ve web.config dosyasındaki <rewrite> bloğu.
Sonraki adımlar
Hayır. IIS .htaccess dosyasını okumaz; kuralları web.config içine URL Rewrite söz dizimiyle yazmanız gerekir.
301 kalıcıdır ve arama motoru yeni adresi dizine alır. 302 geçicidir; eski adres dizinde kalır. Sayfa geri gelmeyecekse 301 kullanın.
Ortak bir kalıp varsa tek kural ve {R:1} yeterlidir. Kalıp yoksa URL Rewrite’ın rewriteMaps özelliğiyle eski-yeni adres listesini tek kuralda toplayabilirsiniz.
Bu makale sorununuzu çözdü mü?
Geri bildiriminiz için teşekkürler.
Çözemediniz mi?
Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.