私はドメインを所有しておりexample.com
、サブドメインが同じ名前のディレクトリを指すように Ubuntu Apache サーバーを設定しました。
<VirtualHost *:80>
ServerAlias *.example.com
VirtualDocumentRoot /var/www/html/%1
</VirtualHost>
したがって、subdomain.example.com
を指摘しますexample.com/subdomain
。
ユーザーが自分のカスタムドメインを自分の選択したサブドメインに向けられるようにしたいのですが、どうすればこれを実現できるでしょうか。また、どのようなレコードが必要で、どのような操作を行う必要があるでしょうか。仮想ホスト?
以下のレコードを試しました:
sampledomain.example
(CNAME記録) -@
-->sample.example.com
sampledomain.example
(Aレコード) -@
--> (IP
example.com のアドレス)
www
を削除するとともに、CNAME に を使用することも試しましたA record
。
sample.example.com
は正常に を指しますexample.com/sample
。ただし、sampledomain.example
何らかの理由で はルート サイトのように動作します。
したがって、 にアクセスすると、 を指すのではなく、sampledomain.example/sample
のコンテンツが取得されます。example.com/sample
sample.example.com
これをどう解決すればよいでしょうか? どのレコードが必要で、仮想ホストに対して何ができるでしょうか?
ユーザーがアクセスしたときに PHP 経由でカスタム ドメイン名を取得できるように CNAME レコードを使用しましたが、CNAME は必須ですか?
答え1
顧客のリクエストに応じて手動で実行することに問題がなければ、これは簡単です。必要なのは、ServerAlias sampledomain.com
vhost 構成に追加して、Web サーバー構成をリロードすることだけです。
ただし、顧客が何らかの顧客管理インターフェイスでこれを自分で実行できるようにしたい場合、Web サーバー上の仮想ホストの動作方法により、これは簡単には実現できません。その理由は次のとおりです。
Web サーバーにマッピングされているDNS レコードがある場合 ( または に関係なくA
) CNAME
、sampledomain.com
ブラウザは HTTPHost
ヘッダーを に設定してサーバーの IP アドレスに要求を送信しますsampledomain.com
。Web サーバーはこのヘッダーを使用して、どの仮想ホストがこれを処理するかを決定します。 がsampledomain.com
vhost 名でもエイリアスでもない場合は、既に経験したように、要求はデフォルトの vhost によって応答されます。
これを可能にするには、顧客が仮想ホストのエイリアスを設定できる方法が必要です。Apacheではこれは簡単ではありませんが、理論的にはデータベースから読み取ることができます。ここ(私はこれを試したことがないので、これが機能するかどうかはわかりません)。
また、仮想最小値そのような場合に役立つかもしれません。