12

IIS 7.5 と URL Rewrite を使用しています。

次のファイル階層を持つ Web サイトがあります。

webroot
webroot/LegacySite

webroot/ と legacy/ はどちらも、IIS の個別のアプリ フォルダーです。


URL を次のように書き換える必要があります。

私のWeb.Conf(webroot フォルダー内の) 以下が正しく機能しません。不足しているものを指摘していただけますか?

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="MyRole" stopProcessing="true">
                        <match url=".*" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="^mysite.com" />
                            <add input="{PATH_INFO}" pattern="^\LegacySite\" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="\LegacySite\{R:0}" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>
4

1 に答える 1

20

以下が機能するはずです。

<rule name="MyRole" stopProcessing="true">
    <match url="LegacySite/(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^mysite.com$" />
    </conditions>
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" />
</rule>

ホスト名をチェックするための条件を削除したい場合があります。それは本当に重要ですか?リダイレクトを発生させたくない Web サイトにバインドされている他のドメイン名はありますか? 不要なようです。おそらく必要なものは次のとおりです。

<rule name="MyRole" stopProcessing="true">
    <match url="LegacySite/(.*)" />
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" />
</rule>

appendQueryString="true"任意の (オプションの) クエリ文字列パラメーターを書き換えられた URL に渡すように追加しました。

于 2012-05-25T14:05:43.580 に答える