重写正则表达式的问题

时间:2012-01-28 19:39:06

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

我的正则表达式有问题,有人可以帮忙吗?

示例网址:http://rhine.ga.domain.com

<rule name="CityStateRule">
    <match url="^.*(/$|$)"/>
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(^[A-Za-z0-9_-]+)\.(^(?:a[klrz]|c[aot]|d[ce]|fl|ga|hi|i[adln]|k[sy]|la|m[adeinost]|n[cdehjmvy]|o[hkr]|pa|ri|s[cd]|t[nx]|ut|v[at]|w[aivy])+)\.domain\.com$"/>
    </conditions>
    <action type="Rewrite" url="/LocationMatch.html?c={C:1}s={C:2}"/>
</rule>

1 个答案:

答案 0 :(得分:2)

您没有解释您遇到的问题,但有以下几点需要注意:

<match url="^.*(/$|$)"/>

匹配任何不包含换行符的字符串。这可能不是你想要的。它可能会导致无限重定向循环,因为您正在重写的URL也将匹配此正则表达式。 (IIS是否允许多次匹配相同的重写规则?)

此外,这是一个较小的一点,但在此:

?c={C:1}s={C:2}

您的查询字符串参数之间似乎缺少&符号&