URLredirect不在IIS 7.5中工作

我正面临从HTTPredirect我的HTTPS Web服务的问题。

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

这里是我得到我的web.configconfiguration:

 <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> 

但没有取消选中需要SSL我的web服务,我不能从HTTPredirect到HTTPS,我得到一个403.4错误。

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

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

有两种方法:

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

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