dedlfix: Subdomain automatisch erstellen

Beitrag lesen

Hi!

Ein mit PHP umgesetztes Projekt öffnet die User-Page der existierenden User anhand der ID
http://www.bla.tld/userpage=52
Die Art des Aufrufes lässt sich da leider auch nicht mehr ändern, da es schon aktiv in Betrieb ist, und bereits viele User angemeldet sind.

Zumindest ändern in der Form von Hinzufügungen werden wohl noch möglich sein.

Es soll nun jedoch den bestehenden und auch den neuen Usern bei Anmeldung die Möglichkeit gegeben werden, sich eine SUBDOMAIN auszusuchen.

Voraussetzung ist, dass die dem DNS bekannt ist. Es gibt aber auch Catch-All-Konfigurationen für einige DNS-Server. Das heißt, der für diese Second-Level-Domain zuständige DNS-Server muss Catch-All können, wenn du nicht für jede Änderung die Konfiguration ändern willst. Meist ist der ja beim Hoster angesiedelt, weil er bessere Möglichkeiten zur Ausfallsicherung hat, als die Kunden mit ihrem zumeist einen Server, was wiederum die Konfiguration auf die zur Verfügung gestellten Hilfsmittel beschränkt und sich vermutlich auf eine schlecht per Script ansprechbare Webseite beschränkt.

Dann soll es so sein,  dass Apache alle Aufrufe der Adresse "berliner1980.bla.tld"  fortan an  http://www.bla.tld/userpage=52 weiterleitet,  wobei egal ist,  ob dabei die richtige Adresse in der Adressleiste des Browsers sichtbar wird oder nicht.

Das ist auch keine gute Idee, weil bei jeder Änderung eine Konfigurationsanpassung inklusive Reload/Restart des Webservers stattfinden muss. Besser denke ich, ist auch hier eine Catch-All-Konfiguration und eine Auswertung des Domainnamens im PHP-Script. Die Zuordnung zwischen Subdomain und User-ID muss ja sowieso in die übliche Datenhaltung eingepflegt werden und kann dort abgefragt werden. Die Zuordnung ist dabei im laufenden Betrieb nicht weiter wichtig, lediglich die bisherigen Abfragen mit der User-ID müssten so ergänzt werden, dass wahlweise die ID oder die Subdomain als Auswahlkriterium genommen werden kann.

Wie bringe ich die Aufrufe auf eine Datei mit ID  (http://www.bla.tld/userpage=52) anstatt auf ein Verzeichnis? (wie üblich bei vhosts)

Nach meinem Vorschlag weiß der Apache nichts von dem Zusammenhang zwischen einer Subdomain und einer User-ID. Die kann nur das PHP-Script aus der Datenbank erfahren. Ansonsten kennt der Apache die Direktive RewriteMap.

Wie mache ich den Apache Neu-start?
via PHP vermutlich nicht sinnvoll (zu gefährlich dem Script die Rechte zu geben)
Also wohl per Cronjob...

Du willst zwar die Konfiguration des Apachen ändern lassen können, traust dich aber nicht, einen Neustart hinzulegen? Nun, es gibt eine Lösung ohne diese Riskien.

Für mich schwierig ist, dass der Aufruf eben auf kein Verzeichnis leiten soll, sondern auf eine Datei mit ID dahinter,  und dass der Name der SUBDOMAIN nichts mit der ID zu tun hat (und auch nichts mit dem Usernamen)

Du musst sowieso Änderungen einbauen. Warum änderst du das dann nicht so, dass neben der User-ID auch der Subdomainname zur Datenabfrage verwendet werden kann?

Lo!