【问题标题】:Problem with URL rewrite on IIS 7.5IIS 7.5 上的 URL 重写问题
【发布时间】: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


【解决方案1】:

HTTP 错误 404。未找到请求的资源

你真的有 HTTP 80 端口的绑定吗?听起来你没有它(只有 HTTPS)。

我问的原因是引用的文本是 确切消息,如果我请求 IIS 域未知(当没有定义包罗万象时)或域未绑定,我会看到到请求的端口。

【讨论】:

  • 这就是我的情况。我没有端口 80 绑定,只有 443,因此无法执行整个重定向设置,因为 url (http) 根本不存在......在这方面浪费了很多时间。谢谢!
猜你喜欢
  • 2013-02-02
  • 2011-10-05
  • 2013-01-06
  • 2012-05-23
  • 2015-05-11
  • 1970-01-01
  • 2012-06-18
  • 2013-07-26
  • 2013-06-01
相关资源
最近更新 更多