iis urlrewriting
静的ページと動的ページの両方を使用してサイトを再構築しています。リダイレクトはすべてうまく機能しています。書き換えモジュールは完全に機能しています。
サイト構造が変化しているため、「古い」無効な URL を新しいページにリダイレクトできるようにする必要があります。たとえば、www.sitename.com/research.aspをwww.sitename.com/newsにリダイレクトする必要があります。
指示に従って書き換えマップを使用してルールを設定し、そのルールを webconfig ファイルの最上部近く (CanonicalHostNameRule のすぐ下) に配置しました。しかし、ルールで試した順列が何であれ、それを機能させることができます。リダイレクトは発生しません。(存在しない) .asp ページに対して 404 が返されるだけです。マップは完全に無視されているようです。繰り返しますが、他のすべてのルールは正常に機能しています。
他のすべてのルールをオフにして、このルールで作業しようとしましたが、うまくいきません。同様に、このフォーラムや他のフォーラムで提案を探しました (ファイル名ではなく REQUEST_URI を使用する、IIS を再起動する、アプリケーション プールをリサイクルするなど) が、何も機能していないようです。「リダイレクト」url="{C:1}" は、リダイレクトしようとしている古い ASP ページに戻るだけです。FailedRequestTracing にも何も役に立たないようです。
ここで非常に明白な何かが欠けていますか?
ルール:
<rule name="Redirect Rule" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{StaticRedirects:{REQUEST_FILENAME}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
地図:
<rewriteMaps>
<rewriteMap name="StaticRedirects">
<add key="research.asp" value="news" />
<add key="blog.asp" value="news" />
<add key="mentors.asp" value="interviews" />
<add key="regulars.asp" value="opinion" />
</rewriteMap>
</rewriteMaps>
注意 - 実際に機能するようになったら、これに追加する静的リダイレクトが他にもたくさんあります。そのため、マップを使用したかったのです。