La rapida carrellata
- Devi creare un dominio con caratteri jolly sul tuo server DNS * .website.com
- Quindi nel tuo contenitore vhost dovrai specificare anche il carattere jolly * .website.com - Questo viene fatto nei
ServerAlias
DOC
- Quindi estrai e verifica il sottodominio in PHP e visualizza i dati appropriati
La versione lunga
1. Creare una voce DNS con caratteri jolly
Nelle impostazioni DNS è necessario creare una voce di dominio con caratteri jolly come *.example.org
. Una voce con caratteri jolly ha questo aspetto:
*.example.org. 3600 A 127.0.0.1
2. Includere il carattere jolly in vhost
Successivamente nella configurazione di Apache è necessario impostare un contenitore vhost che specifichi il carattere jolly nella direttiva ServerAlias
DOCs . Un esempio di container vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Individua il sottodominio in PHP
Quindi nei tuoi script PHP puoi scoprire il dominio guardando nella $_SERVER
variabile super globale. Ecco un esempio di acquisizione del sottodominio in PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Ho usato regex qui per consentire alle persone di visitare il tuo sito tramite www.subdomain.example.org o subdomain.example.org.
Se non ti aspetti mai di avere a che fare con www. (o altri sottodomini) allora potresti semplicemente usare una sottostringa in questo modo:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Hosting virtuale di massa
L'hosting virtuale di massa è uno schema leggermente diverso da quanto sopra in quanto lo usereste solitamente per ospitare molti siti Web distinti piuttosto che tentare di utilizzarlo per alimentare un'applicazione come propone la domanda.
Ho già documentato il mio ambiente di hosting virtuale di massa basato su mod_rewrite in un post sul mio blog , che potresti guardare se questa è la strada che desideri prendere. C'è anche, ovviamente, la rispettiva pagina di manuale di Apache .
Apache ha anche un modo interno di gestire l'hosting virtuale di massa che è leggermente meno flessibile del metodo mod_rewrite che ho usato. Tutto questo è descritto nella pagina di manuale dell'hosting virtuale di massa configurato dinamicamente Apache .
wildcard subdomains
, vedi la mia soluzione per farlo in.htaccess
.