Redirect

URL 重定向在 IIS 7.5 中不起作用

  • August 1, 2014

我在從 HTTP 重定向我的 HTTPS Web 服務時遇到問題。

我已將 CA SSL 證書應用於我的 Web 服務並使用 URL 重寫,我已在 IIS 7.5 中完成了重定向更改。

這是我進入的配置web.config

<rule name="Redirect to HTTPS" stopProcessing="true">
 <match url="(.*)" />
 <conditions>
   <add input="{HTTPS}" pattern="^OFF$" />
 </conditions>
 <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>

但是如果沒有取消選中我的 web 服務需要 SSL,我無法從 HTTP 重定向到 HTTPS,我會收到 403.4 錯誤。

當我嘗試添加帶有 403.4 程式碼的錯誤頁面時,它不接受它並說我們不能添加 403.3 程式碼。它只接受 403、404 等。

“要求 SSL”複選框正是導致所有正常 HTTP 請求返回 HTTP 403 的原因。取消選中它不會“破壞 SSL”或類似的東西,它只是允許 IIS 為 HTTP 請求提供響應

有兩種方法:

  1. 取消選中網站上的“要求 SSL”複選框並使用 URL Rewrite 重寫所有 HTTP 請求
  2. 保持“需要 SSL”設置
  • 從網站中刪除所有非 HTTPS 綁定
  • 使用您從真實網站中刪除的 HTTP 綁定創建一個新的虛擬網站
  • 使用 URL Rewrite 通過 https 將所有請求從虛擬站點重定向到真實站點

第一種方法是最容易實現和維護的,但第二種方法提供了額外的保護,因為如果 URL 重寫模組因任何原因失敗,IIS 將拋出錯誤(而不是提供非 http 內容)

引用自:https://serverfault.com/questions/617204