IIS 7.5書き換えルールで http://www.domain.com/url1 を http://www.domain)にリダイレクトしたいだけです。 com/url2 (同じドメイン)。これは次の方法で実現できます。
<rule name="Redirect url" enabled="true" stopProcessing="true">
<match url="^url1" />
<action type="Redirect" url="http://www.domain.com/url2"
appendQueryString="false" redirectType="Permanent" />
</rule>
ただし、このWebサイトはいくつかのドメインをリッスンしているため、上記はすべてのドメインのグローバルルールになります。これをdomain.comに固有にする方法を教えてください。一致するURLを変更して条件を追加しようとしましたが、機能しません。ありがとう。
私はそれをこのように機能させました:
<rule name="Redirect url1" stopProcessing="true">
<match url="^url1$" />
<conditions>
<add input="{HTTP_Host}" pattern="^(www.)?domain.com$" />
</conditions>
<action type="Redirect" url="http://www.domain.com/url2"
appendQueryString="false" redirectType="Permanent" />
</rule>
このページの回答を使用して、自分でルールを微調整することができました。クエリパラメータも追加しました。それが誰かを助ける場合に備えて、ここに投稿したかった:
<!-- probably requires custom rewrite module, available through web platform installer -->
<rule name="Redirect oldsite.com" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_Host}" pattern="^.*oldsite\.com$" />
</conditions>
<action type="Redirect" url="http://www.newsite.com/page.cfm?userid=123&mode=form"
appendQueryString="false" redirectType="Permanent" />
</rule>
説明のいくつかのビット:
混乱を解消するために、この「url」は、URL全体ではなく、ドメインの後の最初のスラッシュの一部ですafter。これを入れて、任意のURLを取得します。
<match url=".*" />
ここで、このコンピューターに複数のWebサイトがあるため、条件を追加します。したがって、このルールがそのうちの1つだけに適用されるようにします。 「(www。)?」の代わりにワイルドカードも使用しましたワイルドカードはすべてのサブドメインをキャッチするためです。
<conditions>
<add input="{HTTP_Host}" pattern="^.*oldsite\.com$" />
</conditions>
そして最後の注意は、複数のクエリ文字列パラメータを入れたい人のためのものです。そうしないと機能しないため、それらの間のアンパサンドをエスケープする必要があります。
<action type="Redirect" url="http://www.newsite.com/page.cfm?userid=123&mode=form"
appendQueryString="false" redirectType="Permanent" />