web-dev-qa-db-ja.com

ドメイン名エイリアスのメインドメインへの.htaccessリダイレクト。ただし、エイリアスドメインとして表示される必要があります。

.htaccessファイルには次のものがあります。

RewriteCond %{HTTP_Host} ^www\.aliasdomain\.com$ [OR]
RewriteCond %{HTTP_Host} ^aliasdomain\.com$
RewriteRule ^(.*)$ http://www.maindomain.com/subdir1/subdir2/index.html [R]

ブラウザでは、aliasdomain.comindex.htmlファイルにアクセスし、aliasdomain.comとして表示されるようにします。

ただし、次のように完全なURLとして表示されます。http://www.maindomain.com/subdir1/subdir2/index.html

3
Michael

ブラウザでaliasdomain.comを維持するためにリクエストを内部的に書き換える必要があり、現在行っているように外部的にリダイレクトする必要はありません。 ..

RewriteRule置換からプロトコル/ホストを削除して、ルート相対パスのみを残し、R(リダイレクト)フラグを削除します。置換のプロトコル/ホストは、外部リダイレクトを強制します。

RewriteCond %{HTTP_Host} ^(www\.)?aliasdomain\.com$
RewriteRule ^$ /subdir1/subdir2/index.html [L]

RewriteRuleディレクティブの^$パターンは、ドメインルート(つまり、http://aliasdomain.com/またはhttp://www.aliasdomain.com/)へのリクエストのみがhttp://aliasdomain.com/every/possible/urlではなく、新しいURLに書き換えられることを保証します(以下のコメントを参照)。

aliasdomain.commaindomain.comdomain aliasであるため、両方のドメインを介してサイト全体にアクセスできます。彼らは同じ場所を指しています。これは、上記の書き換えルールが依存しているものです。内部で別のホストに書き換えることはできません。したがって、上記のRewriteRulealiasdomain.comからファイルを提供します。

1
MrWhite