Le site http://jcray.com ou encore http://de-merde.com permet à ses utilisateurs d'obtenir une adresse en .jcray.com, ou .de-merde.com . Il va de soi que ces sous domaines ne sont pas créés manuellement par le webmaster qui y passerait beaucoup trop de temps. Il s'agit en fait d'un système de "wildcards" (au niveau des dns et de la configuration apache2), et c'est php qui récupère le sous-domaine.
Prérequis :
Utiliser un serveur dns permettant les wildcards ( * )
Pouvoir modifier les fichiers de configuration d'apache2 ( serveur dédié, en somme)
Configuration au niveau des dns
Assurez vous d'avoir un champs A de type votredomaine.fr (sans www, ni aucun autre sous domaine)
Ajoutez ensuite un champs CNAME de type *.votredomaine.fr
C'est ce qu'on appelle une wildcard, c'est à dire que * correspond à toutes les valeurs possibles.
Configuration au niveau d'apache 2
Sous debian, apache2 est installé dans /etc/apache2 .
Les fichiers de configuration des domaines sont compris dans le dossier /etc/apache2/sites-enabled .
Ouvrez votre fichier de configuration de votre domaine (ou créez le si besoin), avec par exemple : nano votredomaine.conf
Là, vous devez avoir quelque chose du type :
<VirtualHost *>
ServerName votredomaine.fr
ServerAdmin webmaster@votredomaine.fr
DocumentRoot /var/www/votredomaine
ServerSignature Off
</VirtualHost>
Il vous suffit de rajouter, sous la ligne ServerName, la ligne suivante :
ServerAlias *.votre-domaine.fr
Ce qui vous donne :
<VirtualHost *>
ServerName votredomaine.fr
ServerAlias *.votre-domaine.fr
ServerAdmin webmaster@votredomaine.fr
DocumentRoot /var/www/votredomaine
ServerSignature Off
</VirtualHost>
Côté php
En premier lieu il vous faut récupérer le sous-domaine.
Utilisons la variable serveur SERVER_NAME
<?php
$domaine = $_SERVER['SERVER_NAME'];
Si l'utilisateur a saisi l'adresse http://un_nom.votredomaine.fr, alors $domaine sera égal à un_nom.votredomaine.fr
Un simple eregi_replace fera l'affaire pour extraire le nom du sous-domaine :
$sous_domaine = eregi_replace('.votredomaine.fr', '', $domaine);
Vous récupérez le sous-domaine, et le stockez dans la variable $sous_domaine.
A partir de ce moment là, vous pouvez très bien adapter votre code en intégrant cette nouvelle variable...










Twitter cet article
Deeler cet article
Poster sur Facebook
Votez sur wikio !
Pour ne manquer aucun article, abonnez-vous !