正则表达式 – 将规则重写为HTTPS,除非在本地主机上
发布时间:2020-12-14 06:36:24 所属栏目:百科 来源:网络整理
导读:我正在使用答案 given here作为尝试添加重写规则到我的web.config文件的基
我正在使用答案
given here作为尝试添加重写规则到我的web.config文件的基础。我希望它匹配任何不在本地主机上运行的url以强制https。
这是我现在所做的: <system.webServer> <rewrite> <!-- force https - http://stackoverflow.com/a/15119044/51 --> <rules> <rule name="Redirect HTTP to HTTPS" stopProcessing="true"> <match url="^((?!localhost).)*$"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/> </rule> </rules> </rewrite> </system.webServer> 我正在尝试使用negative lookaround,以便只匹配URL中不包含“localhost”的url。但这不行。 那么这个规则应该如何设置,以便只重写非本地主机的url?
尝试这个条件:
<system.webServer> <rewrite> <rules> <rule name="Redirect HTTP to HTTPS" stopProcessing="true"> <match url="^(.*)$"/> <conditions> <add input="{HTTPS}" pattern="^OFF$"/> <add input="{HTTP_HOST}" matchType="Pattern" pattern="^localhost$" negate="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/> </rule> </rules> </rewrite> </system.webServer> 对localhost模式使用否定条件应该做到这一点。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |