TheRec
dimanche 29 juillet 2007 à 10:39
Bonjour,
Je suppose que tu as un serveur dédié, car sinon tu vas avoir des difficultés à faire ce que tu souhaites.
Tout d'abord il faut qu'au niveau des enregistrements DNS la résolution des sous-domaines mène effectivement vers ton serveur. C'est possible en ajoutant cette ligne (avec l'adresse IP correcte à la place de 123.123.123.123) dans ton fichier
bind (monsite.com.hosts, se trouvant à priori sous /var/named/) :
CODE
* IN A 123.123.123.123
Une fois cette ligne ajoutée, tu devras redémarrer
bind avec la commande "/etc/init.d/named restart"
Ensuite il faudra avoir le
mod_vhost installé sous Apache (si ce n'est pas le cas tu devras recomplier Apache pour l'installer) afin de pouvoir créer un VirtualHost également avec un wildcard (*) menant vers le répertoire de ton choix, cela se passe dans le fichier
httpd.conf de ton serveur Apache. À priori tu devrais déjà avoir un VirtualHost ou tu trouveras un ligne du genre :
CODE
ServerAlias domain.com
(OU www.domaine.com)
Remplace-là par
CODE
ServerAlias domaine.com *.domain.com
Maintenant tous les sous-domaines (sauf ceux que tu as explicitement défini dans d'autres <VirtualHost>) pointent vers le même DocumentRoot que ton domaine
Donc finalement tu gères ces sous-domaines avec ton fichier .htaccess :
CODE
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.monsite.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).monsite.com [NC]
RewriteRule (.*) %2/$1 [L]
Cela prend en compte le fait que le sous-domaine "www" ne doit pas être récrit, et le fait que un sous-domaine du type www.sousdomaine.monsite.com doit aussi être récrit (comme le simple sousdomaine.monsite.com).
C'est du travail et cela nécessite certaines connaissances et certains accès sur le serveur utilisé pour l'hébergement, ce n'est pas possible sur un hébergement mutualisé en général.