emz*_*ero 3 asp.net https redirect url-rewriting
我需要将每个请求强制发送到https://www.mysite.com(始终使用 https 和 www)
该站点托管在 GoDaddy 中,我需要通过 IIS7 URL 重写模块来完成。
我已经能够使用以下代码进行 HTTPS 重定向:
<system.webServer>
<rewrite>
<rules>
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mysite\.com$" />
</conditions>
<action type="Redirect" url="https://www.mysite.com/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
测试用例
我猜当我在浏览器中输入 www.mysite.com 时条件不满足,所以没有重定向,页面作为 HTTP 而不是 HTTPS。
我想我只需要修改条件模式,但我几乎没有正则表达式知识,我需要尽快。
谢谢!
emzero,我认为问题在于您的条件仅匹配mysite.com:
<conditions>
<add input="{HTTP_HOST}" pattern="^mysite\.com$" />
</conditions>
Run Code Online (Sandbox Code Playgroud)
请注意模式:^mysite\.com$. 这是说,在英国,传入的URL必须以开始mysite.com和结束mysite.com,这意味着www.mysite.com将不会匹配。
试试这个模式,它允许一个选项www.:
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)?mysite\.com$" />
</conditions>
Run Code Online (Sandbox Code Playgroud)
编程快乐!
| 归档时间: |
|
| 查看次数: |
1234 次 |
| 最近记录: |