gpenverne gpenverne
Penverne Gregoire
Articles, codes sources
Actualites Web
Webmaster freelance
Statistiques Gregoire Penverne
Outils PHP en ligne
Livres - Informatique


Twittez cet article!

Apache2 - PHP : Créer des sous domaines à la volée (wildcards)

Catégorisé dans : #Sources PHP #Divers #Linux - Debian


Grégoire Penverne Par Grégoire Penverne
Le 25/02/2010
582 lectures



Twitter cet article
Deel this! Deeler cet article
Poster sur Facebook
Partager sur Del.icio.us Poster sur Del.icio.us
Digg it! Digg it!
Votez sur wikio !




Catégories


Autres Articles

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...

 

 

 

 

 

 




Gpenverne en RSS Pour ne manquer aucun article, abonnez-vous !

Discussions / Réactions