web-dev-qa-db-ja.com

htaccessを介してさまざまなhttpドメインを特定のhttpsドメインにリダイレクトする

TLDが異なるドメイン名がたくさんあります。私が欲しいのは、SSL証明書(単一ドメイン)を持つ「メイン」ドメインを複数のドメインに向けることです。

このような:

https://maindomain.com (main domain with SSL cert)
http://additionaldomain1.net (should redirect to https://maincomain.com and rewrite the URLs)
http://additionaldomain2.org (should redirect to https://maincomain.com and rewrite the URLs)

Httpsドメインは、Webサイトデータを含むディレクトリを指します。リダイレクトと書き換えを管理するためにhtaccessファイルをそこに置くことができると考えていたので、追加のドメインを指すディレクトリにサブフォルダーを作成しました。今のところ大丈夫ですか?

要求されたドメイン(additionaldomain1.netまたはadditionaldomain2.org)をhttps://maindomain.comに永続的にリダイレクトし、URLを正しく書き換える正しいhtaccessルールを見つけることができません。

私が思いついた最も簡単なことを試しました:

Redirect permanent / https://maindomain.com/

しかし、その結果、例えばhttps://additionaldomain1.netはもちろん、機能しません。

編集:

WordPressを使用し、https://maindomain.comをブログURLおよびサイトURLとして設定に配置し、WordPressにSSLを強制しました。

誰か助けてもらえますか?

5
okiedokey

メインドメインのドキュメントルートのサブディレクトリを指す追加のドメインで、そのサブディレクトリの.htaccessに次を追加して、メインドメインにリダイレクトできます。

RewriteEngine On
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

これはmod_alias(Redirect)ではなくmod_rewriteを使用することに注意してください。そのため、親.htaccessファイルのmod_rewriteディレクティブをオーバーライドします。これは、親.htaccessファイル(WordPressディレクティブを含む)がmod_aliasを使用しないことを前提としています。 (WordPressは通常mod_rewriteのみを使用します。)

302(一時的な)リダイレクトを301(永続的な)リダイレクトに変更したら、問題なく動作していることを確認します。


別の方法(コメントで述べたように)は、これらの追加ドメインをサブディレクトリではなくメインドメインのドキュメントルートに単純にポイントすることです。次に、メインドメインの.htaccessファイルを変更し、同様の外部リダイレクトbefore WordPressディレクティブを含める必要があります。何かのようなもの:

RewriteEngine On
RewriteCond %{HTTP_Host} ^(www\.)?additionaldomain1\.net$
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

実際、サブディレクトリでとにかくこれを行うことができ、サブディレクトリの.htaccessファイルを使用しません。 .htaccessファイルはデフォルトで継承されます。

2
MrWhite