Le résumé rapide
- Vous devez créer un domaine joker sur votre serveur DNS *.website.com
- Ensuite, dans le conteneur de votre serveur virtuel, vous devrez spécifier le caractère de remplacement *.website.com - Ceci est fait dans le champ
ServerAlias
DOCs
- Puis extraire et vérifier le sous-domaine en PHP et afficher les données appropriées
La version longue
1. Créer une entrée DNS joker
Dans vos paramètres DNS, vous devez créer un fichier entrée de domaine joker comme *.example.org
. Une entrée joker ressemble à ceci :
*.example.org. 3600 A 127.0.0.1
2. Inclure le joker dans le vhost
Ensuite, dans la configuration d'Apache, vous devez mettre en place un conteneur vhost qui spécifie le caractère générique dans le fichier ServerAlias
DOCs directive. Un exemple de conteneur vhost :
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
3. Déterminez le sous-domaine sur lequel vous vous trouvez en PHP.
Ensuite, dans vos scripts PHP, vous pouvez trouver le domaine en regardant dans le fichier $_SERVER
super variable globale. Voici un exemple de saisie du sous-domaine en PHP :
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
J'ai utilisé une expression rationnelle ici pour permettre aux personnes de visiter votre site via www.subdomain.example.org ou sous-domaine.example.org.
Si vous ne prévoyez jamais d'avoir affaire à www. (ou à d'autres sous-domaines), vous pouvez simplement utiliser une sous-chaîne comme suit :
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Hébergement virtuel de masse
L'hébergement virtuel de masse est un système légèrement différent du précédent dans la mesure où vous l'utilisez 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 intitulé article sur mon blog que vous pouvez consulter si c'est la voie que vous souhaitez emprunter. Il y a aussi, bien sûr, le page de manuel Apache correspondante .
Apache dispose également d'une méthode interne de traitement de 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 ceci est décrit sur le site web d'Apache Page de manuel sur l'hébergement virtuel de masse configuré dynamiquement .