2011-10-22 9 views
0

私はサイトビルダアプリケーションを作成しました。そこでは、サイト訪問者が自分のサイトを使用して自分のWebサイトを構築することができます。現在、各サイトのURLは、このようなものです:異なるURLにドメイン名を割り当てる

www.sitebuilder.com/sites/site_id=18 

私が欲しいものは、自分のサイトのための本当のドメインを持つように、各ユーザを有効にすることです。 site_id=18を持つユーザーは、新しいドメイン名を望んでいる場合たとえば、:

www.newdomain.com 

その後www.newdomain.comwww.sitebuilder.com/sites/site_id=18

の内容を表示する必要があります。しかし、それは、転送によって行うべきではありません。どのようにそれを行う上の任意のアイデア?あなたは、これはすでに/これが何を意味するか知っているかわからない場合は

+0

私はサービスの一部としてこれを提供するホスト(MediaTempleなど)がたくさんあると思います。 [ExpressionEngine Multi-Site Manager](http://expressionengine.com/downloads/details/multiple_site_manager/)もこの問題を解決します。 –

答えて

1

(おそらく)www.newdomain.comとのためのAレコードnewdomain.comは、私はそれはあなたがどのようDNS上に少なくとも少し読書を行う重要だと思う、(サーバーを指摘する必要があるであろう作品)。そして、あなたは2つのオプションがあります。

  • を間違いなく、より良く、より一般的に使用されるアプローチは、(Apacheのmod_vhost_aliasのようなもので)Webサーバー上の仮想ホスティングを使用することであり、それはA受けるようにサーバを設定しますあなたのURLスキームが現在動作している様子から、あなたのアーキテクチャを大幅に変更することなく簡単な作業になりますし、あなたがしていたことを知る必要があります。
  • $_SERVER['HTTP_HOST']を使用して)PHP内からサイトにアクセスするために使用されたドメインを確認し、これに基づいて正しいファイルを提供することができます。これはおそらく設定が簡単だろうが、私は個人的に長期的に持続可能性が低いと考えるだろう - これは私の個人的な意見であり、おそらく数時間議論することができる主題である(SOはその場所ではないディベート)。
+0

詳細な返信をありがとう。 mod_vhost_aliasは、別のディレクトリから各ファイルを提供している場合にのみ使用できます。 問題は、各ファイルが異なるディレクトリのサーバーではなく、パラメータで渡されたID(site_id = 18)を使用してデータベースから取得されていることです。 URLをドメインにマップします – user1009059

+0

ポイント2では、これを行うことができますが、ポイント1はそうではありません。これは、「これは、あなたのアーキテクチャを大幅に変更することなく、単純な作業ではありません。あなたは '$ _SERVER ['HTTP_HOST']'を使用して、サイトを識別することができます。 '$ _GET ['site_id']' - 'site_id'はデータベースインデックスですか?したがって、そのテーブルに、サイトにアクセスするために使用されるドメインを持つ追加のフィールドを追加して、次のようなものを使用してください: – DaveRandom

+0

'if(isset($ _ GET ['site_id'])){$ siteId = $ _GET ['site_id'];} else {$ siteId = mysql_query( "SELECT side_idどこのサイトからdomain_alias = '{$ _SERVER [' HTTP_HOST ']}' '); $ siteId = mysql_fetch_array($ siteId); $ siteId = $ siteId ['site_id'];} ' – DaveRandom

0

本当にどのようなホスティング設定があるかによって異なります。いつも、私はこれを見たことがあります(ドメインをパスに直接マッピングし、あらゆる種類のリダイレクトを使用したくない場合)。通常は、ホストのバックエンドが手動で設定を調整する必要があります。

たとえば、ユーザーはどのようにして独自のURLを取得しますか?明らかに彼らはGoDaddyに行かず、自分自身で購入します。おそらく、サービスとして提供し、あなた自身でレジストラのものを世話します。

嫌なことに、ユーザーが購入するたびに、サーバースペース上の正しいフォルダにドメインを手動でマップする必要があります。ドメインのプロセスは現在100%自動化されていないと確信していますので、ここでは5分間余分に作業していますか?誰かが必要なバックエンドの変更を促すドメインを支払ったときに電子メールを送信するスクリプトを設定するだけです。その後、最初に実装するには24〜48時間かかります。

関連する問題