ここに投稿された質問に似ています(ただし、サブディレクトリとは関係ありません): 。htaccessドメイン名エイリアスのメインドメインへのリダイレクトですが、エイリアスドメインとして表示される必要があります
ブラウザのアドレスバーにエイリアスドメインを保持したまま、持っているエイリアスドメインから同じサーバー上のサイトにトラフィックを誘導しようとしています。
これはユーザーを正しくリダイレクトする元のhtaccessコンテンツですが、xyz.comがブラウザーに表示されますが、これは望ましくありません。
rewritecond %{HTTP_Host} ^(www\.)?abc\.com$ [NC]
rewriterule ^ http://xyz.com/?foo [R=301,QSA,L]
これは、abc.comの訪問者をxyz.comに誘導するだけでなく、abc.comをブラウザーに表示する試みです。これはサイトをロードしません。修正に関するアイデアはありますか?
rewritecond %{HTTP_Host} ^(www\.)?abc\.com$
RewriteRule ^$ /index.html [L]
問い合わせている各ドメインには、同じサーバー上の個別のドキュメントルートフォルダーが割り当てられていると想定します。
Abc.comのドキュメントルートは/ abc/public_htmlフォルダーにあり、xyz.comのドキュメントルートは/ xyz/public_htmlフォルダーにあると仮定します。
Xyz.comを表示したくないし、そこからデータが必要なため、いくつかのオプションがあります。
Linuxサーバーを使用する場合、/ abc/public_htmlフォルダー内のすべてのファイル(.htaccessを除く)を、/ xyz/public_htmlフォルダー内のファイルを指すシンボリックリンクとして有効にすることができます。
/ abc/public_htmlの内容が/ xyz/public_htmlとまったく同じになるようにファイルをコピーする方が簡単ですが、このオプションにはより多くのディスク容量が必要です。
.htaccessを更新して、xyz.comへの要求がabc.comに転送されるようにして、コンテンツの重複の問題が発生しないようにします。
redirectするたびに、ユーザーに表示されるURLを変更するようブラウザに指示しています。この問題を解決する方法は3つあります。
DocumentRoot
ディレクトリを持つように仮想ホストを設定する必要があります。フレーム化されたリダイレクト。フレームリダイレクトは、クライアント側のHTMLフレームを使用して、別のドメインのコンテンツを表示します。
<frameset rows="100%,*" border="0">
<frame src="http://othersite.example.com/" noresize frameborder="0">
</frameset>
次の理由により、このソリューションは優れていません。