Ssl
IIS 7.5 SSL 重定向
我有一個標準網站託管在我可以完全控制的伺服器上 - www.domain.com。我最近為該域購買了 SSL 證書以準備接受信用卡,並希望將所有請求重定向到https://www.domain.com。在大多數情況下,我創建的規則(見下文)工作正常 - 如果我輸入http://www.domain.com>它將重定向到<https://www.domain.com>。我遇到的問題是,如果我轉到內部連結,例如<http://www.domain.com/folder/page.aspx,我會得到 404,因為唯一的綁定與 HTTPS 相關。如何制定重定向規則,說明對 www.domain.com 的任何請求都發送到 HTTPS,但保留所請求的原始文件夾/頁面結構?所以,要去http://www.domain.com/folder/page.aspx>將我發送到<https://www.domain.com/folder/page.aspx。我希望查詢字元串值也保持不變。
這是我目前的重寫規則:
<rewrite> <rules> <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}" /> </rule> </rules> </rewrite>
我最終自己解決了它 - 我結合了兩種不同的規則(一個將http://domain.com>重寫為證書連結到的<https://www.domain.com),另一個只是重定向所有 HTTPS 請求,它似乎執行良好。這是相關的配置條目:
<rewrite> <rules> <rule name="CanonicalHostNameRule1"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^www\.domain\.com$" negate="true" /> </conditions> <action type="Redirect" url="http://www.domain.com/{R:1}" /> </rule> <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}" /> </rule> </rules> </rewrite>