1

初めて IIS 7 の URL Rewrite 機能を使用しようとしていますが、正規表現が機能しません。それは十分に単純であるべきだと思われます。URL を次のように書き換えるだけです。

http://localhost/myApplication/MySpecialFolder

に:

http://localhost/MySpecialFolder

これは可能ですか?「http://localhost」や「http://mysite」などを使用できるように、正規表現で元の URL の「myApplication」より前のすべてを無視するようにします。

ここに私がこれまでに持っているものがあります:

^myApplication/MySpecialFolder$

しかし、IIS の「テスト パターン...」機能を使用すると、「myApplication/MySpecialFolder」を正確に指定しない限り、パターンが一致しないと表示されます。「myApplication」より前のすべてが無視され、次の URL が一致すると見なされるように、正規表現を更新する方法を知っている人はいますか?

http://localhost/myApplication/MySpecialFolder
http://mysite/myApplication/MySpecialFolder

よろしくお願いします!

解決:

正規表現を次のように変更する必要がありました。

myApplication/MySpecialFolder

^はじめに なしで$、最後に なし。

4

2 に答える 2

2

正規表現は正しいです。パターンは、ドメインの後の最初のスラッシュの後に始まるパスと照合されます。そのため、マッチングには太字部分のみが使用されます: http://localhost/myApplication/MySpecialFolder

書き換えを特定のドメインに制限するには、ConditionsセクションをCondition input=で使用する必要があります{HTTP_HOST}

于 2012-12-05T22:30:52.953 に答える
1

IIS の正規表現に根本的な違いがない限り、^一致させるために先頭のアンカー ( ) を削除することをお勧めします。

myApplication/MySpecialFolder$

カラット^はそれが文字列の始まりであることを示し、ドル記号$は末尾に一致することを示します。文字列内の任意の場所で " abc abc" を検索し、^abc"abc" で始まる文字列と一致し、"abc"abc$で終わる文字列と^abc$一致し、文字列全体が "abc" の場合にのみ一致します。

于 2012-12-05T22:29:23.060 に答える