使用url重写将URL添加到URL

时间:2012-02-06 12:51:52

标签: regex iis-7 url-rewriting url-rewrite-module

我发现这个代码在不使用url rewrite的情况下将www添加到url。

<rewrite>
    <rules>
        <clear />
        <rule name="WWW Rewrite" enabled="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
            </conditions>
            <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

但似乎网址中没有“ - ”,例如scotts-cleaners.com。

返回www.www.scotts-cleaners.com。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

只需将-添加到模式中:

<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9-]+)$" />

由于连字符和字母数字构成域名中唯一允许的字符,因此您的模式现在应适用于所有网址。

答案 1 :(得分:0)

pattern="^www\.([.a-zA-Z0-9-]+)$"

显然连字符不需要在正则表达式中转义^^