【发布时间】:2011-10-21 03:32:26
【问题描述】:
我正在尝试使用 IIS 7.5 的 URL 重写模块将我的 ASP.NET 网站的所有 HTTP 请求重定向到 HTTPS。该网站目前运行良好,但会强制用户在地址栏中键入 https://。
我按照this article 中的说明进行操作。 似乎一切都很好:我尝试将规则放在 web.config 中,它会按原样显示在 UI 中;我也做了相反的操作,当我使用 UI 添加规则时,可以看到 web.config 中的更改。我没有选中该站点的 RequireSSL。不幸的是,当我尝试通过 http:// 访问该站点时,我仍然只是得到 404。
我尝试了一些不同的操作 url,包括 {HTTP_HOST}/{R:1} 和下面显示的.. 没有任何效果。
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}"
redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
我对此很陌生,在这一点上非常沮丧。看起来这应该容易得多。任何建议将不胜感激,谢谢..
从 ServerFault 重新发布,因为它已经坐了一段时间没有得到答复。
【问题讨论】:
-
规则本身绝对没问题——在这里有效。必须是别的东西。你得到什么 404 错误(打开显示详细错误消息)?
-
我无法让它显示比“HTTP 错误 404。未找到请求的资源”更详细的内容。我有 customErrors="RemoteOnly" 和 debug="true"。尝试通过 http 在本地主机上点击它,我得到相同的消息。我无法使用角色,因为这是我无法访问的登录页面。
标签: iis url-rewriting iis-7.5