URL 重定向在 IIS 7.5 中不起作用

URL 重定向在 IIS 7.5 中不起作用

我在从 HTTP 重定向 HTTPS Web 服务时遇到问题。

我已将 CA SSL 证书应用于我的 Web 服务,并使用 URL 重写在 IIS 7.5 中完成了重定向的更改。

以下是我的配置web.config

<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}" redirectType="SeeOther" />
</rule>

但是,如果不取消选中我的 Web 服务需要 SSL,我就无法从 HTTP 重定向到 HTTPS,从而出现 403.4 错误。

当我尝试添加带有 403.4 代码的错误页面时,它不接受它并说我们无法添加 403.3 代码。它只接受 403、404 等。

答案1

“需要 SSL”复选框正是导致所有常规 HTTP 请求返回 HTTP 403 的原因。取消选中它不会“破坏 SSL”或类似情况,它只是允许 IIS 为 HTTP 请求提供响应

有两种方法可以解决此问题:

  1. 取消选中网站上的“需要 SSL”复选框,并使用 URL 重写重写所有 HTTP 请求
  2. 保持“需要 SSL”设置
    • 从网站中删除所有非 HTTPS 绑定
    • 使用从真实网站中删除的 HTTP 绑定创建一个新的虚拟网站
    • 使用 URL 重写将所有请求从虚拟网站通过 https 重定向到真实网站

第一种方法是最容易实现和维护的,但第二种方法提供了额外的保障,即如果 URL 重写模块因任何原因失败,IIS 将抛出错误(而不是提供非 http 内容)

相关内容