0

私がウェブサイトを開発しているとしましょう。ドメインが foo.bar であるとしましょう。

さらに、lorem というユーザーと ipsum というユーザーがいるとします。lorem には lorem.foo.bar の URL を作成し、ipsum には ipsum.foo.bar の URL を作成したいと考えています。それを実現できるテクノロジーにはどのようなものがありますか? これが達成されたテクノロジーの例を教えてください。

本当にありがとう。

4

1 に答える 1

1

ニーズによっては、このアプローチが最も簡単であることがわかります。

私の経験では、あなたがやろうとしていることを行う最善の方法は、DNS サーバーで構成されているワイルドカード ドメインを使用することです。あなたの例では、 *.foo.bar は foo.bar ドメインのワイルドカードです。通常、これらは A レコードに設定されますが、MX レコードなどに設定することもできます。ここでの唯一の実際の要件は、DNS サーバーがワイルドカード ドメインをサポートしていることです。

Web サーバーに関する限り、lorem.foo.bar が lorem ページなどを表示するように、ある種の URL 書き換え技術を採用する必要があります。URL を書き換える方法はいくつかあります。Apache では、VirtualHosts を構成するか、mod_rewrite を使用できます。IIS では、ISAPI フィルターを使用するか、ASP.NET MVC の URL ルートを使用して書き換えを行う方法がいくつかあります。

関連する例を次に示します。

Apache VirtualHost を使用したワイルドカード サブドメインの作成

.NET 4 での URL 書き換え?

http://support.microsoft.com/kb/840687

http://www.isapirewrite.com/docs/

-コメントごとに編集

*.foo.bar の例では、DNS サーバーに単一のワイルドカード ドメインのみをセットアップします。それが完了したら、別のワイルドカードを追加しない限り、再度行う必要はありません。

Apacheに関する限り、このようなことができるはずです(Apacheを長い間使用していないため、これは少し不正確かもしれません)

<VirtualHost 0.0.0.0>
   DocumentRoot /www/[directory sub domains are served out of]
   ServerName www.foo.bar
   ServerAlias *.foo.bar
</VirtualHost>

繰り返しますが、これは 1 回限りの構成にするか、ワイルドカードを追加する必要があります。ここから、PHP (または使用している言語) は、指定されたサブドメインに基づいて表示するコンテンツの実際の処理を処理する必要があります。

-- 2 番目のコメントの編集 2

そのため、ワイルドカード ドメインではほとんどすべての値を使用できます。上記の場合、*.foo.bar は lorem.foo.bar、ipsum.foo.bar、someguy.foo.bar などを許可し、DNS サーバーにエントリを追加したり、VirtualHost エントリを追加したりする必要はありません。したがって、上記の VirtualHost 構成を使用すると、DocumentRoot が /www/subdomains であると言えます。lorem.foo.bar または ipsum.foo.bar に移動すると、両方のリクエストが /www/subdomains フォルダーから提供されるため、そこにあるコードはサブドメインの名前 (この場合は lorem または ipsum) を取得する必要があります。データベースまたはその他のビジネス プロセスにクエリを実行して、これらの値に基づいて行動します。このプロセスのために単一のディレクトリ、DNS エントリ、および/または VirtualHost エントリを作成しようとするのは、絶対的な管理の悪夢になるため、間違いです。

于 2013-06-18T01:50:34.983 に答える