2011-01-19 10 views
0

ここでは取引があります。基本的に私は複数のドメインを持っていますが、ドメインの1つがサイトの通常のベースを指すようにしたいのですが、他のドメインはアドレスバーのURLを変更することなくを使わないでサイトのサブセクションを指すようにします。アイデアは、余分なドメインのそれぞれが自分のセクションにブランド化されているということです。サイトサブセクション用の複数のドメイン

例:
www.domain.com
www.domain2.comポイントサイトのトップレベルは
をwww.domain.com/defする
www.domain3.comポイントをwww.domain.com/abcします など

また、 'abc'と 'def'はファイルシステム上の実際のディレクトリではなく、データベースに定義された仮想領域です。

私はかなり多くの時間を費やしていますが、これに適合するものは何も見つかりませんでした。私はではないはフレームを使用しているためドメインクローキングを使いたい。通常のリダイレクトは明らかに正しいことを指し示すのは簡単ですが、アドレスバーのURLを変更します。

これを行う方法はありますか?

編集:
マークは、以下の提案として、私は、エイリアスを追加しましたが、誰もが、私は、この作品を作るためのmod_rewriteを使用することができますどのように光を当てることができますか?

+0

DNSサーバーにアクセスできますか? –

+0

DNSレコードを編集できます。 – dev

+0

追加のご要望にお返事いただき、大変遅れて申し訳ありません。残念ながら、あなたの状況の詳細を知らずに、あなたに完全な解決策を与えるのは難しいですが、私は答えを編集してヒントを与えました。詳細を共有したいと思ったら、markeirich.com/contactまでご連絡ください。それ以外の場合は、mod_rewriteの例をオンラインで調べたり、誰かを雇う必要があります。 –

答えて

5

まず、DNSレコードがWebサーバーのIPを指している必要があります。

第2に、同じVirtualHostから複数のドメインを提供するようにApacheを設定する必要があります。 mod_aliasを有効にし、VirtualHost定義でServerAliasディレクティブを使用します。例:

これを正しく実行した場合は、リダイレクトを行わずに各ドメインでまったく同じコンテンツが表示されます。

次は、アーキテクチャ上の決定です。 mod_rewriteを使用すると、ドメインに基づいてURLルーティングルールをハードコードすることも、$ _SERVER ['HTTP_HOST']の値に基づいてPHPを使用してルーティングを行うこともできます。

RewriteEngine On 

RewriteCond %{HTTP_HOST} domain2\.com$ 
RewriteRule ^(.*)$ /abc/$1 [L] 

RewriteCond %{HTTP_HOST} domain3\.com$ 
RewriteRule ^(.*)$ /def/$1 [L] 

これは、高レベルの概要です:

のmod_rewriteのソリューションは、あなたの.htaccessファイルに次のようなものを追加すること伴うかもしれません。プロセスの特定の部分についての詳細が必要な場合は、私の答えにコメントしてください。

+0

まずはお返事ありがとうございます。これが可能であることを知っておくとよいでしょう。ちょっとした工夫がよかったです。私はあなたが話していることを理解していますが、私はいくつかの詳細が必要です。あなたが助けるサンプルを提供できる場合。そこからmod_rewriteやphpを使っても問題ありませんが、正確に何をする必要があるのか​​は分かりません。なぜなら、エイリアスとの関係がわからないからです。 – dev

+0

エイリアスビットをありがとう。それは私がかなり期待したものです。私が最も不明な点は、mod_rewriteを使用してdomain2.comのすべてのリクエストをdomain1.com/abcに、domain3.comをdomain1.com/defにマッピングし、アドレスバーのURLを変更する必要がないことです。私のPHPコードにそのようなものを組み込むことは可能かもしれませんが、ルーティングはすでに十分な状況が完成しているので、これを分けておくともっと簡単になります。 – dev

関連する問題