it-swarm.com.de

Subdomains vs Ordner für Anwendungen mit mehreren Konten / Benutzern

Was ist für eine Mehrbenutzer-Webanwendung besser?

http://username.domain.com

Oder

http://domain.com/username

Ich würde gerne Feedback zu Sicherheit, Skalierbarkeit und Wartung erhalten. Die App basiert auf PHP, daher basiert sie auf .htaccess für das Umschreiben von URLs.

2
Carlos Barbosa

Wie bei jeder hochrangigen Frage wie dieser hängt die Antwort weitgehend von Ihren Anforderungen ab.

Die erste Frage, die ich stellen sollte (da sie in Ihrer Frage nicht angegeben wurde), ist, warum Sie sich überhaupt mit einer Unterdomäne oder einem Unterordner befassen. Werden diese für "Vanity" -URLs sein? Wenn dies nicht der Fall ist und Sie nur Inhalte bereitstellen, die auf einem angemeldeten Benutzer basieren, benötigen Sie nur Ihre Basis-URL (kein Ordner oder keine Unterdomäne erforderlich). Sobald Sie einen Benutzer authentifiziert haben, wissen Sie, wer er ist und worauf er Zugriff haben sollte, und können Inhalte basierend auf seiner Anmeldung bereitstellen.

Wenn Sie dies für Vanity-URLs verwenden möchten, finden Sie hier einige Vor- und Nachteile:

nterordner

  • Bessere Option für SEO. Suchmaschinen sehen jede Subdomain als separate Website und geben der Root-Domain nicht so viel Gewicht. Die Verwendung von Unterordnern trägt zur Verbesserung des SEO-Rankings bei.
  • Ihr Code wird höchstwahrscheinlich umgeschrieben, wenn Sie nur eine einzige Codebasis haben möchten.
  • Es muss weiterhin berücksichtigt werden, was ein Benutzer aufgrund seiner Anmeldung sehen darf.
  • Wie JamesRyan bereits erwähnte, können Cookies ein Problem darstellen, wenn Benutzer Code generieren, da sie sich alle in derselben Domain befinden.
  • Wenn Sie vorhaben, SSL zu verwenden (dies sollte der Fall sein, wenn Benutzer Kennwörter oder andere private Daten angeben), benötigen Sie nur ein einziges Zertifikat. Sie können ein einzelnes Platzhalterzertifikat für Unterdomänen verwenden, diese sind jedoch in der Regel viel teurer.

Subdomains

  • Bessere Option, wenn Sie separate Websites erstellen möchten (d. H. Unterschiedliche Webroots, unterschiedliche Apache-Instanzen, unterschiedliche SSL-Zertifikate für jede Website usw.)
  • Hätte nicht unbedingt irgendwelche Änderungen zu berücksichtigen (obwohl du es immer noch könntest). Ihr Code könnte so geschrieben sein, dass er den Host-Header überprüft, um festzustellen, welcher Inhalt bereitgestellt werden soll.
  • Wäre entweder ein Platzhalter-DNS-Eintrag erforderlich, oder Sie müssen manuell DNS-Einträge für jede von Ihnen erstellte Unterdomäne erstellen. Abhängig von der Anzahl der zu erstellenden Subdomains kann dies einen hohen Aufwand bedeuten. Wildcard-DNS-Einträge wären mit Sicherheit der richtige Weg.
  • Wie bei der Option für Unterordner müssen Sie auch bei Verwendung derselben Codebasis zum Bereitstellen der einzelnen Websites die Benutzer authentifizieren und prüfen, für welche Elemente sie berechtigt sind.

Letztendlich kommt es wirklich darauf an, was Ihre Anforderungen sind. Ich habe nur einige Punkte aufgelistet, die bei beiden Optionen berücksichtigt werden sollten. Wenn Sie Ihre Frage präzisieren möchten, werden Sie wahrscheinlich ein paar genauere Antworten erhalten.

2
Rob

Die Verwendung von Ordnern ist definitiv einfacher zu verwalten und wesentlich skalierbarer.

Für Subdomains müssen Sie jeweils eine neue Server-Instanz anlegen. Mit Ordnern erstellen Sie einfach einen neuen Ordner.

Subdomains gewinnen an Sicherheit, aber wenn der Inhalt des Profils verwaltet wird, sollten Sie mit Ordnern gehen.

Wenn die Benutzer die vollständige Kontrolle über dieses Thema haben, verwenden Sie Unterdomänen.

1
McKayla

Cookies gelten für Domains und würden geteilt, wenn Sie Ordner verwenden, jedoch mit Subdomains für die gesamte Domain oder einzelne Subdomains.

Wenn Sie benutzergenerierten Inhalt hosten, müssen Sie vorsichtig sein, um XSS-Angriffe zu vermeiden.

0
JamesRyan