我正在尝试做一些非常简单的事情。我只需要强制 SSL,并尝试使用 URl Rewrite 插件。当我将以下规则放入我的配置文件中时,没有得到任何结果。
<rewrite>
<rules>
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)[^/])$" />
<conditions>
<add input="{SERVER_PORT}" pattern="443" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>
有什么想法为什么这没有引起注意?
答案1
这是我在一个正常运行的网站上制定的规则——运行良好。如您所见,它与您拥有的非常接近。
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
如果此方法无效 —— 那么您必须查找其他问题(SSL 根本没有配置/SSL 配置错误等)。深入研究错误详细信息 —— 应该显示以下内容:
- 未找到什么文件确切地
- 看着错误子代码-- IIS 7.x 有大约 20 个不同的子代码 --http://support.microsoft.com/kb/943891(例如“404.6 - 动词被拒绝”等)