.net IIS强制SSL重定向赢得';t重定向根流量
我正在使用IIS 10,并尝试将非ssl通信重定向到ssl。我已经搜索了很多,没有找到任何其他报告,所以我在这里问 重定向适用于所有URL,但根流量除外,这非常奇怪 例如,如果我输入.net IIS强制SSL重定向赢得';t重定向根流量,.net,asp.net-mvc-5,web-config,iis-10,.net,Asp.net Mvc 5,Web Config,Iis 10,我正在使用IIS 10,并尝试将非ssl通信重定向到ssl。我已经搜索了很多,没有找到任何其他报告,所以我在这里问 重定向适用于所有URL,但根流量除外,这非常奇怪 例如,如果我输入http://sitename.com它不会重定向到https,但是如果我键入http://sitename.com/index.html它重定向到https 如果出于任何原因,我的根页面是index.html页面 Web.config代码: <system.webServer> <rewrit
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中规则的定义中,它在输入列“\”之后添加了“始终匹配失败”。我不确定你比赛的结果是什么 当我将patternSyntax=“Wildcard”更改为正则表达式时,它起了作用。所以我建议你使用正则表达式 我还为您重写了一条新规则,将http重定向到https。Https用于确定当前请求是否使用SSL。https的值是On和Off,On表示请求使用SSL。更多服务器变量可参考。 即使是根流量,它也始终有效。你可以用它
<rule name="Force SSL" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="Off" />
<add input="{HTTP_HOST}" pattern="sitename.com" />
</conditions>
<action type="Redirect" url="https://sitename.com{REQUEST_URI}" appendQueryString="false" />
</rule>
@LexLi嗯,在尝试安装跟踪时,我不得不重新安装rewrite,使其显示为跟踪模块。现在重定向在根目录下工作