1

このIIS書き換えルールがあります

<rule name="Redirect rule for aliased Pages">
    <match url="^/pages/(.*)" />
    <action type="Redirect" url="{R:1}" />
</rule>

http://mydomain.com/pages/about-us/http://mydomain.com/about-us/にリダイレクトする必要があるという考えです。その場合の IIS のテスターに​​よると、R:1 は about-us/ ですが、リダイレクトは常にhttp://mydomain.com//about-us/になります (ダブル // を参照)。一致する URL から両方のスラッシュを削除して、それぞれをそのままにしてみましたが、違いはないようです。

その余分な / がどこから来ているのか、何か考えはありますか?

4

1 に答える 1

1

URL 書き換えモジュールは、最初の末尾のスラッシュの後にチェックを開始するため、次のようにすると、最初のレベルのフォルダー「ページ」が削除されます。

<rule name="Redirect rule for aliased Pages">
  <match url="^pages/(.*)" />
  <action type="Redirect" url="{R:1}" />
</rule>

テスト:

予想通り。

別のファイルに書き換えルールがある場合、変更を機能させるには、アプリケーション プールをリサイクルするか、IIS を再起動する必要があることに注意してください。

また、ルールの順序も重要です。

于 2013-09-30T15:49:16.203 に答える