3

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>

注意 - 実際に機能するようになったら、これに追加する静的リダイレクトが他にもたくさんあります。そのため、マップを使用したかったのです。

4

0 に答える 0