Le rapide aperçu
- Vous devez créer un domaine générique sur votre serveur DNS * .website.com
- Ensuite, dans votre conteneur vhost, vous devrez également spécifier le caractère générique * .website.com - Ceci est fait dans les
ServerAlias
DOCs
- Ensuite, extrayez et vérifiez le sous-domaine en PHP et affichez les données appropriées
La version longue
1. Créez une entrée DNS générique
Dans vos paramètres DNS, vous devez créer une entrée de domaine générique telle que *.example.org
. Une entrée générique ressemble à ceci:
*.example.org. 3600 A 127.0.0.1
2. Incluez le caractère générique dans vhost
Ensuite, dans la configuration Apache, vous devez configurer un conteneur vhost qui spécifie le caractère générique dans la directive ServerAlias
DOCs . Un exemple de conteneur vhost:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Déterminez sur quel sous-domaine vous vous trouvez en PHP
Ensuite, dans vos scripts PHP, vous pouvez trouver le domaine en regardant dans la $_SERVER
variable super globale. Voici un exemple de capture du sous-domaine en PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
J'ai utilisé l'expression régulière ici pour permettre aux personnes d'accéder à votre site via www.subdomain.example.org ou subdomain.example.org.
Si vous ne prévoyez jamais avoir à traiter avec www. (ou d'autres sous-domaines) alors vous pouvez simplement utiliser une sous-chaîne comme ceci:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Hébergement virtuel de masse
L'hébergement virtuel de masse est un schéma légèrement différent de celui ci-dessus en ce sens que vous l'utiliseriez généralement pour héberger de nombreux sites Web distincts plutôt que d'essayer de l'utiliser pour alimenter une application comme le propose la question.
J'ai déjà documenté mon environnement d'hébergement virtuel de masse basé sur mod_rewrite dans un article sur mon blog , que vous pouvez consulter si c'est la route que vous souhaitez emprunter. Il y a aussi, bien sûr, la page de manuel Apache respective .
Apache a également un moyen interne de gérer l'hébergement virtuel de masse qui est légèrement moins flexible que la méthode mod_rewrite que j'ai utilisée. Tout cela est décrit sur la page de manuel de l'hébergement virtuel de masse Apache configuré dynamiquement .
wildcard subdomains
, consultez ma solution pour le faire dans.htaccess
.