重定向并删除 www 并添加 https
Redirect and remove www and add https
这条规则似乎工作正常,但是当我转到 https://www.example.com 时它不会删除 www.
但是,如果我转到 http://www.example.com 它会按预期工作。
为什么不从 https 重定向?
<rewrite>
<rules>
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$"/>
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$"/>
</conditions>
<action type="Redirect" url="https://example.com{PATH_INFO}" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
根据我上面的评论,在您描述的场景中,您的规则实际上对我有用。但是,我认为它不会处理向主机名中不包含 www
的不安全 url 发出请求的情况。例如,http://example.com/blah/
不会被重定向。以下规则也适用于这种情况:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Remove WWW and Ensure HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(www\.)" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://example.com{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
该规则检查以 www
开头的主机名或不安全的请求。如果满足任一条件,用户将被重定向。
这条规则似乎工作正常,但是当我转到 https://www.example.com 时它不会删除 www.
但是,如果我转到 http://www.example.com 它会按预期工作。
为什么不从 https 重定向?
<rewrite>
<rules>
<rule name="Remove WWW" stopProcessing="true">
<match url="^(.*)$"/>
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$"/>
</conditions>
<action type="Redirect" url="https://example.com{PATH_INFO}" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
根据我上面的评论,在您描述的场景中,您的规则实际上对我有用。但是,我认为它不会处理向主机名中不包含 www
的不安全 url 发出请求的情况。例如,http://example.com/blah/
不会被重定向。以下规则也适用于这种情况:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Remove WWW and Ensure HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(www\.)" />
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://example.com{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
该规则检查以 www
开头的主机名或不安全的请求。如果满足任一条件,用户将被重定向。