web-dev-qa-db-ja.com

301 web.configを使用して1つのドメインを別のドメインにリダイレクトする

1つのホスティングロケーションを指す複数のドメインがあります。ドメインの1つをメインドメインとして確立したいので、ユーザーがセカンダリドメインからサイトにアクセスするたびに、このメインドメインへの301リダイレクトを実行します。

例えば:

www.example.com

これは私のメインドメインです。私のサイトに関連付けられている他のすべてのドメインをここにリダイレクトしてほしい。

ユーザーが参加した場合:

www.test.comまたはwww.test.com/anypageなど.

次に、ユーザーをそのページのサンプルバージョンにリダイレクトします。

アプリケーションのweb.Configファイルを使用してこれを行うにはどうすればよいですか?私が尋ねる理由は、通常、私のWebホスティングプロバイダーにはバックオフィスにこのリダイレクトを設定できるツールがありますが、クライアントはそのようなツールを提供しない別のホスティングプロバイダーを選択しているためです。

次のコードを使用してこのリダイレクトを実行しようとしましたが、動作しないようです。

<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_Host}" negate="true" pattern="^test\.com$" />
  </conditions>
  <action type="Redirect" url="http://www.example.com/{R:1}}" redirectType="Permanent" />
</rule>

私のアプリケーションはUmbracoを利用したサイトなので、web.configファイルにいくつかのsystem.webServerエントリがあります。このコードを間違った場所に入力した可能性がありますが、.htaccessファイルで301リダイレクトを実行することに慣れているだけなので、ここでのヘルプは非常にありがたいです。

20
jezzipin

これは実際にはumbracoに関連しているわけではありませんが、あなたがしたいことはこれだと思います:

<rewrite>
  <rules>
    <rule name="redirect" enabled="true">
      <match url="(.*)" />
        <conditions>
          <add input="{HTTP_Host}" negate="true" pattern="^www\.example\.com$" />
        </conditions>
      <action type="Redirect" url="http://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

ホスト名の部分が正確にwww.example.comでない限り、すべてのURLを照合し、それらをwww.example.com/whateverにリダイレクトします。

30
Claus