我有这个应用程序,我刚刚安装了一个SSL证书。是的,我试图重定向用户只使用HTTPS://url.com。并阻止他们使用http://url.com site。然而,因为我缺乏理解的正则表达式来定义模式和条件,不幸的是,我找不到一个指南与一些例子,如何定义这些规则。我想要一个具体的例子,如何设置这个https://{HTTP_HOST}{REQUEST_URI}。
SSL
HTTPS://url.com
http://url.com site
https://{HTTP_HOST}{REQUEST_URI}
4ngedf3f1#
确保已添加URL重写功能。在IIS管理器的URL重写部分中配置以下内容。1.创建入站规则(空白规则)1.请求的URL:Matches the pattern1.使用:Wildcards1.图案:*
Matches the pattern
Wildcards
*
条件
{HTTPS}
off
Redirect
Checked
Found (302)
一旦你这么做了。创造一个条件...1.右键单击新规则1.条件-〉添加+1.条件输入:{QUERY_STRING}
{QUERY_STRING}
所有使用http请求的流量将自动重定向到https端口。
bsxbgnwa2#
我想我已经找到了一个无需重写URL的解决方案。在IIS中,右键单击网站,选择“管理网站-高级设置”,展开“行为”,展开“HSTS”,并将属性“启用”和“重定向HttpToHttps”设置为“真”。更新:正如@jonasfh所指出的,无论如何你都需要同时绑定http和https,因为只有成功的http请求才会被重定向到https。所以,如果http请求不成功(因为http绑定不存在),重定向到https也不会发生。谢谢。Update 2:只是想添加设置后,需要从IIS重新启动网站。
esyap4oy3#
我的方法来自Global.asax
protected void Application_BeginRequest() { #if !DEBUG if (!Context.Request.IsSecureConnection) { if (Context.Request.Url.ToString().Contains(".well-known")) return; Response.StatusCode = 301; Response.RedirectPermanent(Context.Request.Url.ToString().Replace("http:", "https:")); } #endif }
ukqbszuj4#
这就是我所遵循的。转到publish文件夹并打开Web.config文件,然后在标记中粘贴以下重写规则<system.webServer><system.webServer>
<rewrite> <rules> <rule name="HTTP to HTTPS Redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules>
4条答案
按热度按时间4ngedf3f1#
确保已添加URL重写功能。在IIS管理器的URL重写部分中配置以下内容。
1.创建入站规则(空白规则)
1.请求的URL:
Matches the pattern
1.使用:
Wildcards
1.图案:
*
条件
{HTTPS}
Matches the pattern
off
行动
Redirect
https://{HTTP_HOST}{REQUEST_URI}
Checked
Found (302)
一旦你这么做了。创造一个条件...
1.右键单击新规则
1.条件-〉添加+
1.条件输入:
{QUERY_STRING}
1.图案:
off
基本上它应该如下所示:
所有使用http请求的流量将自动重定向到https端口。
bsxbgnwa2#
我想我已经找到了一个无需重写URL的解决方案。在IIS中,右键单击网站,选择“管理网站-高级设置”,展开“行为”,展开“HSTS”,并将属性“启用”和“重定向HttpToHttps”设置为“真”。
更新:正如@jonasfh所指出的,无论如何你都需要同时绑定http和https,因为只有成功的http请求才会被重定向到https。所以,如果http请求不成功(因为http绑定不存在),重定向到https也不会发生。谢谢。
Update 2:只是想添加设置后,需要从IIS重新启动网站。
esyap4oy3#
我的方法来自Global.asax
ukqbszuj4#
这就是我所遵循的。
转到publish文件夹并打开Web.config文件,然后在标记中粘贴以下重写规则<system.webServer>
<system.webServer>