Redirect iis url将http重定向到非www https
我需要重新定向 到 -工作 到 -工作 到 -不起作用Redirect iis url将http重定向到非www https,redirect,iis,web,Redirect,Iis,Web,我需要重新定向 到 -工作 到 -工作 到 -不起作用 rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HT
rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^www\.(.+)$" />
</conditions>
<action type="Redirect" url="https://{C:1}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
重写>
我认为这对您来说是可行的,搜索模式有可选的www和使用反向引用C:2的重定向,规则有一个条件,即只针对非https运行
这是一种模式:
"^(www\.)?(.*)$"
其中:
{C:0} - www.domain.de
{C:1} - www.
{C:2} - domain.de
以下是完整的规则:
<rewrite>
<rules>
<rule name="SecureRedirect" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" />
</conditions>
<action type="Redirect" url="https://{C:2}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
如果您想要比三个示例更灵活的内容,请将HTTP\U主机模式更改为:
\w+\.\w+$
。这适用于所有三个示例以及其他任何示例,如subdomain.abcdef.domain.de
如果使用此正则表达式,请将其括在括号中,或在操作中将C:1更改为C:0。如果要将www重定向到非www:
这些重写规则与以下URL匹配:
- www.example.com
它们都将重定向到:
由于规则不同,这些重写规则可能会重定向两次。(我是regex的新手)
这就是我的工作原理:
<rule name="NameRule1" stopProcessing="true" enabled="true" >
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://example.com/{R:1}" />
</rule>
我假设“重写”正确地位于其开头标记中,即使在代码中缺少开头的V形符号。你能详细说明“导入规则1”吗?角色可以放在哪里?在根目录上的web.config文件中?@David Martin,{https}://www.domain.com到{https}://domain怎么样。com@RohitArora我不确定我是否完全理解你的问题,我可以建议你发布一个新问题吗?@DavidMartin简言之,这对我不起作用。我也想要同样的IIS 8。谢谢你的回复!如果希望重定向保持在同一页面上(保留路径信息),而不是转到网站根目录,请将操作更改为:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
<rule name="WWW" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="https://example.com{PATH_INFO}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
<rule name="NameRule1" stopProcessing="true" enabled="true" >
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://example.com/{R:1}" />
</rule>