2012-01-28 113 views
2

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

实例网址: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> 

回答

2

你不解释什么遇到,但这里有几件事情来看待问题:

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

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

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

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

它看起来像你缺少之间的符号&您查询字符串参数。

+0

嗯好问题关于IIS的事情,不确定它是否匹配多次。我认为这个问题与我的正则表达式分组有关,^(...我试过使用regexr,并且生成一个新的,你会认为这将是一个常见问题?大声笑没有太多在线..(为什么我在这里是正确的?)...。问题是,这个重写规则将我重定向到主页面,而不是定制页面,wonderin如果这也许是规则匹配的问题。我想检查所有对city.state.domain的请求。 com ...并且我编写了一个城市规则,但是现在我需要一个城市/州组合的规则。 – Jason 2012-01-28 20:04:08

+0

有关我在[link] http://stackoverflow.com/questions/9069938/上所做的更多信息分的正则表达式-成-2-捕获基团[/链接] – Jason 2012-01-31 15:21:06