【发布时间】:2020-12-31 11:59:08
【问题描述】:
我正在使用 IIS 10,并且正在尝试将非 ssl 流量重定向到 ssl。我搜索了很多,没有找到任何其他具体的报告,所以我在这里问。
重定向适用于除根流量之外的所有 url,这非常奇怪。
例如,如果我输入http://sitename.com,它不会重定向到https,但是如果我输入http://sitename.com/index.html,它会重定向到https。
我的根页面是 index.html 页面,如果出于任何原因这很重要。
Web.config 代码:
<system.webServer>
<rewrite>
<rules>
<rule name="Force SSL" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" negate="true" />
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
<add input="{HTTP_HOST}" pattern="(www\.)?sitename\.com" />
</conditions>
<action type="Redirect" url="https://sitename.com{REQUEST_URI}" appendQueryString="false" />
</rule>
...
</rules>
</rewrite>
</system.webServer>
另外一点,我在 IIS 的顶层添加了它,但它仍然不起作用。
我在网站上的 IIS 中的规则定义中注意到,它添加在输入列 URL path after '\' 下。
【问题讨论】:
-
@LexLi 很好,在尝试安装跟踪时,我必须重新安装 rewrite 才能将其显示为跟踪模块。现在重定向在根目录下工作????????♂️。这整件事很奇怪。因为完全相同的设置在我的登台服务器上运行,但不适用于 prod。但现在它正在工作,无论如何。
标签: .net asp.net-mvc-5 web-config iis-10