4

リダイレクトするURLを含む「rewritemaps.config」という名前の別の構成ファイルを使用しようとしています。ファイルはルートディレクトリ(web.configと同じ場所)にあります。私が持っているRedirects.configファイルの形式は次のとおりです。

<rewriteMaps>
    <rewriteMap name="Redirects">
        <add key="aspx/drvmain.aspx"
             value="http://www.newdomain.com/folder2/page2.aspx" />
        <add key="aspx/jobs_AboutUs.aspx"
             value="http://www.newdomain.com/folder1/jobs.aspx" />
        <add key="aspx/page.aspx"
             value="http://www.newdomain.com/folder1/page2.aspx" />
    </rewriteMap>
</rewriteMaps>

私のweb.configファイルには、次のものがあります。

<system.webServer>
    <rewrite>
        <rewriteMaps configSource="rewritemaps.config" />
            <rules>
                <rule name="Redirect rules">
                    <match url=".*" />
                    <conditions>
                        <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent"
                            url="{C:1}" appendQueryString="false" />
                </rule>
            </rules>
        </rewriteMaps>
    </rewrite>
</system.webServer>

IISマネージャー(はい、URL Rewriteモジュールをインストールしました)で、redirects.configファイル内のURLの1つに対してルールと条件をテストしましたが、機能すると表示されます。しかし、ブラウザでURLにアクセスしようとすると、指定したとおりにリダイレクトされません。rewritemaps.configファイルで、完全なドメインを入れてみました。また、aspxの前に「/」を付けてみました。何も機能していないようです。ここで何が欠けているのかわかりません。

4

2 に答える 2

4

さて、私はそれを機能させました。愚かなことでした。rewritemaps.configファイルでは、キーURLの前に「/」が必要でした。私は以前にそれを試したことがあることを知っていますが、その時どこかで何かが欠けていたに違いありません。しかたがない。今は動作します。

于 2013-01-11T18:22:50.350 に答える
0

これが失敗する理由を特定するのは非常に困難ですが、IISが何が起こっているかを通知するために、FailedRequestTracingを使用するのが最善の方法です。FREBを使用すると、評価されたルールと、それらが一致したか一致しなかったか、およびその理由を示す詳細なトレースが得られます。また、一致する「正しい」パターンと、評価されるすべての条件を確認できます。

次のリンクを参照してください: http ://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

于 2013-01-11T02:03:10.840 に答える