Redirect
URL 重定向在 IIS 7.5 中不起作用
我在從 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 請求提供響應
有兩種方法:
- 取消選中網站上的“要求 SSL”複選框並使用 URL Rewrite 重寫所有 HTTP 請求
- 保持“需要 SSL”設置
- 從網站中刪除所有非 HTTPS 綁定
- 使用您從真實網站中刪除的 HTTP 綁定創建一個新的虛擬網站
- 使用 URL Rewrite 通過 https 將所有請求從虛擬站點重定向到真實站點
第一種方法是最容易實現和維護的,但第二種方法提供了額外的保護,因為如果 URL 重寫模組因任何原因失敗,IIS 將拋出錯誤(而不是提供非 http 內容)