0

私のiis7ボックスでは、web.configにURL書き換えルールがあり、すべてのURLを小文字に保ちます。

<rule name="LowerCaseRule1" stopProcessing="false">
    <match url="^((?=.*[A-Z]).*\.aspx)(.*)" ignoreCase="false" />
    <action type="Redirect" url="{ToLower:{R:1}}{R:2}" />
</rule>

これはうまく機能していますが、大文字が含まれている場合、AJAX WebMethod 呼び出しも書き換えられます。したがって、メソッドは呼び出されません。明らかな解決策は、すべての WebMethods を小文字のままにすることですが、書き換えの正規表現から正面から攻撃する方が適切です。

現在:

/Default.aspx ==> /default.aspx

/Default.aspx/UpdateOrder ==> /default.aspx/updateorder

後者の例を /default.aspx/UpdateOrderに書き換えてほしい

私の正規表現のスキルでは、そこにたどり着けません。

前もって感謝します、ジョン

4

1 に答える 1

0

私はこの問題を脇に置き、ずっと後に戻ってきました。否定条件を追加しましたが、うまくいくようです:

<rule name="LowerCaseRule1" stopProcessing="false">
     <match url="^((?=.*[A-Z]).*\.aspx)(.*)" ignoreCase="false" />
     <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_URL}" matchType="Pattern" pattern="^([^A-Z]+\.aspx/)(.*)" ignoreCase="false" negate="true" />
     </conditions>
   <action type="Redirect" url="{ToLower:{R:1}}{R:2}" />
</rule>
于 2013-09-25T22:11:41.467 に答える