web-dev-qa-db-ja.com

ブラウザのアドレスバーに表示するドメインエイリアスを要求する

ここに投稿された質問に似ています(ただし、サブディレクトリとは関係ありません): 。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]
3
John Montague

問い合わせている各ドメインには、同じサーバー上の個別のドキュメントルートフォルダーが割り当てられていると想定します。

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に転送されるようにして、コンテンツの重複の問題が発生しないようにします。

1
Mike

redirectするたびに、ユーザーに表示されるURLを変更するようブラウザに指示しています。この問題を解決する方法は3つあります。

  1. 同じフォルダから両方のドメインを提供します。これは、両方のドメインに同じ(重複した)コンテンツがあることを意味します。このソリューションは、両方のドメインが同じサーバーから提供される場合に機能します。同じDocumentRootディレクトリを持つように仮想ホストを設定する必要があります。
  2. mod_proxy inreverse proxyモードでは、ドメインが別のドメインからコンテンツを再提供できます。ページリクエストを取得すると、他のドメインからそれを取得し、再度提供します。これは、2つのドメインが異なるサーバーで提供されている場合でも機能します。また、重複したコンテンツが作成され、コンテンツを直接提供するよりも遅くなります。
  3. フレーム化されたリダイレクト。フレームリダイレクトは、クライアント側のHTMLフレームを使用して、別のドメインのコンテンツを表示します。

    <frameset rows="100%,*" border="0">
    <frame src="http://othersite.example.com/" noresize frameborder="0">
    </frameset>
    

    次の理由により、このソリューションは優れていません。

    • SEOにはうまく機能しません-Googleは引き続きユーザーを他のサイトに誘導します
    • ユーザーがサイトをナビゲートしてもURLは変わりません。このmakeは、ユーザーがコンテンツをブックマークまたは共有するのが困難です。
0