我正在尝试为规范名称实现url重定向,在IIS中,我正在使用Azure,因此需要在web.config中完成。
有2个域名www。示例 .com和www。 example1 .com,还有一个博客位于www.example1.com/ 博客< / strong>所有上述网址我们没有www 需要重定向到www。 example1 .com并保留.com之后的任何文字等博客等。
我正在尝试实现以下功能,但要么无法解析URL或无限循环,我对regex不太熟悉,所以似乎无法使一切正常运行。
这是我到目前为止所拥有的
<rule name="Root Redirect" stopProcessing="true">
<match url=".*" negate="false" />
<action type="Redirect" url="http://www.example1.com/{R:0}" />
<conditions trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="^www\.example.com$" />
</conditions>
</rule>
<rule name="www Redirect" patternSyntax="Wildcard" stopProcessing="true">
<match url=".*" negate="false" />
<action type="Redirect" url="http://www.example1.com/{R:1}" />
<conditions trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="http://example1.com" />
</conditions>
</rule>
以上代码适用于所有情况,除了2(在chrome中抛出错误)和4(根本没有重定向)。希望这有助于并提前感谢: - )
答案 0 :(得分:0)
在域名中强制执行www的规则:
<rule name="WWW" enabled="true" stopProcessing="true">
<match url=" (.*)" />
<conditions >
<add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>
从另一个域重定向的规则(转义所有句点):
<rule name="Root Redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www)?\.example\.com$" />
</conditions>
<action type="Redirect" url="http://www.example1.com/{R:1}" />
</rule>