2012-01-28 115 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