2

正規表現に問題があります。誰か助けてもらえますか?

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>
4

1 に答える 1

2

どのような問題が発生しているかは説明しませんが、次の点を確認してください。

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

これは、改行を含まない任意の文字列に一致します。それはおそらくあなたが望むものではありません。書き換え先の URLこの正規表現に一致するため、無限のリダイレクト ループが発生する可能性があります。(IIS は、同じ書き換えルールが複数回一致することを許可しますか?)

また、これは小さなポイントですが、これでは:

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

&クエリ文字列パラメーターの間にアンパサンドがないようです。

于 2012-01-28T19:49:02.297 に答える