web-dev-qa-db-ja.com

サブアカウントとフォルダー、マルチアカウント/ユーザーアプリケーション用

したがって、マルチユーザーWebアプリの場合は、次の点が優れています。

http://username.domain.com

または

http://domain.com/username

特に、セキュリティ、スケーラビリティ、およびメンテナンスに関するフィードバックを取得したいと思います。アプリはphpベースなので、URL書き換え用の.htaccessに基づいています。

2
Carlos Barbosa

このような高レベルの質問と同様に、答えは主に要件によって異なります。

ただし、最初の質問(質問で指定されていないため)は、なぜサブドメインまたはサブフォルダーに関心があるのですか?これらは「バニティ」URL用ですか?そうでない場合、ログインしているユーザーに基づいてコンテンツを提供するだけであれば、ベースURLのみが必要になります(フォルダーやサブドメインは不要です)。ユーザーを認証すると、ユーザーが誰であるか、何にアクセスする必要があるかがわかり、ログインに基づいてコンテンツを提供できます。

これをバニティURLに使用する場合、それぞれの長所/短所を次に示します。

サブフォルダー

  • SEOのより良いオプション。検索エンジンは、各サブドメインを個別のWebサイトとして認識し、ルートドメインにそれほど重点を置きません。サブフォルダーを使用すると、SEOランキングの向上に役立ちます。
  • コードベースを1つだけにすることを計画している場合は、コードに何らかの書き換えが含まれている可能性があります。
  • ユーザーがログインに基づいて表示できるものを考慮する必要があります。
  • JamesRyanが述べたように、ユーザーがコードを生成している場合、Cookieはすべて同じドメインに存在するため、懸念される可能性があります。
  • SSL(パスワードまたは他のプライベートデータを提供するユーザーがいる場合に使用する必要があります)の使用を計画している場合、必要な証明書は1つだけです。サブドメインに単一のワイルドカード証明書を使用できますが、それらははるかに高価になる傾向があります。

サブドメイン

  • 個別のWebサイト(つまり、異なるWebルート、異なるApacheインスタンス、各サイトの異なるSSL証明書など)を作成する場合のより良いオプション
  • 考慮する必要のある書き換えは必ずしも必要ではありません(まだ可能ですが)。 Hostヘッダーをチェックして、提供するコンテンツを決定するコードを作成できます。
  • ワイルドカードDNSレコードが必要になるか、作成する各サブドメインのDNSレコードを手動で作成する必要があります。作成されるサブドメインの数によっては、これには多くの労力が必要になる場合があります。ワイルドカードDNSレコードを使用するのは確かです。
  • サブフォルダーオプションと同様に、各サイトを提供するために同じコードベースを使用している場合、ユーザーを認証し、ユーザーが表示を許可されているものを確認する必要があります。

結局のところ、それは本当にあなたの要件が何であるかということです。いずれかのオプションで留意すべきことをいくつか挙げました。質問をより具体的にするために改良したい場合は、おそらくより具体的な回答がいくつか得られると確信しています。

2
Rob

フォルダの使用は、間違いなく、間違いなく、間違いなく管理が容易で、はるかにスケーラブルです。

サブドメインの場合、それぞれに新しいサーバーインスタンスを作成する必要があります。フォルダを使用すると、新しいフォルダを作成するだけです。

サブドメインはセキュリティで勝ちますが、プロファイルのコンテンツが管理されている場合は、フォルダーを使用する必要があります。

ユーザーが完全に制御できるものであれば、サブドメインを使用します。

1
McKayla

Cookieはドメインに適用されるため、フォルダを使用した場合に共有されますが、サブドメインを使用するとドメイン全体または個々のサブドメインに適用できます。

ユーザーが生成したコンテンツをホストする場合は、XSS攻撃を避けるように注意する必要があります。

0
JamesRyan