Проблемы с регулярным выражением для перезаписи - PullRequest
2 голосов
/ 28 января 2012

У меня проблемы с регулярным выражением, кто-нибудь может помочь?

Пример URL: 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 Ответ

2 голосов
/ 28 января 2012

Вы не объясняете какие проблемы у вас возникают, но вот несколько вещей, на которые стоит обратить внимание:

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

это соответствует любой строке, которая не содержит символов новой строки,Это, вероятно, не то, что вы хотите.Это, вероятно, вызовет бесконечный цикл перенаправления, потому что URL, который вы переписываете с на , также будет соответствовать этому регулярному выражению.(Разрешает ли IIS одно и то же правило перезаписи совпадать несколько раз?)

Кроме того, это меньшая точка, но в этом:

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

похоже, что вы пропустилиамперсанд & между параметрами строки запроса.

...