Der schnelle Überblick
- Sie müssen eine Platzhalterdomäne auf Ihrem DNS-Server * .website.com erstellen
- Dann müssen Sie in Ihrem vhost-Container auch den Platzhalter angeben * .website.com - Dies erfolgt in den
ServerAlias
DOCs
- Extrahieren und überprüfen Sie dann die Subdomain in PHP und zeigen Sie die entsprechenden Daten an
Die lange Version
1. Erstellen Sie einen Platzhalter-DNS-Eintrag
In Ihren DNS-Einstellungen müssen Sie einen Platzhalter-Domäneneintrag erstellen, z *.example.org
. Ein Platzhaltereintrag sieht folgendermaßen aus:
*.example.org. 3600 A 127.0.0.1
2. Fügen Sie den Platzhalter in vhost ein
Als nächstes müssen Sie in der Apache-Konfiguration einen vhost-Container einrichten, der den Platzhalter in der ServerAlias
DOCs- Direktive angibt . Ein Beispiel für einen vhost-Container:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Ermitteln Sie, auf welcher Subdomain Sie sich in PHP befinden
Dann können Sie in Ihren PHP-Skripten die Domäne herausfinden, indem Sie in die $_SERVER
superglobale Variable schauen . Hier ist ein Beispiel für das Abrufen der Subdomain in PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Ich habe hier Regex verwendet, um zu ermöglichen, dass Personen Ihre Website über www.subdomain.example.org oder subdomain.example.org aufrufen.
Wenn Sie nie damit rechnen müssen, sich mit www zu befassen. (oder andere Subdomains) dann könnten Sie einfach einen Teilstring wie folgt verwenden:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Virtuelles Massenhosting
Virtuelles Massenhosting ist ein etwas anderes Schema als das oben beschriebene, da Sie es normalerweise zum Hosten vieler verschiedener Websites verwenden würden, anstatt zu versuchen, es für eine Anwendung zu verwenden, wie in der Frage vorgeschlagen.
Ich habe meine mod_rewrite-basierte virtuelle Massenhosting-Umgebung bereits in einem Beitrag in meinem Blog dokumentiert , den Sie sich ansehen können, wenn dies der Weg ist, den Sie einschlagen möchten. Natürlich gibt es auch die entsprechende Apache-Handbuchseite .
Apache hat auch eine interne Methode für den Umgang mit virtuellem Massenhosting, die etwas weniger flexibel ist als die von mir verwendete mod_rewrite-Methode. Dies alles wird auf der Handbuchseite Apache Dynamically Configured Mass Virtual Hosting beschrieben .
wildcard subdomains
, sehen Sie meine Lösung, um dies zu tun.htaccess
.