redirection de sous domaines vers les domaines correspondant

Eléphant du PHP | 245 Messages

29 sept. 2010, 18:18

J'héberge plusieurs sites internet sur mon serveur apache 2.0 via des virtualshosts :

Code : Tout sélectionner

<VirtualHost 192.168.1.2> DocumentRoot c:\repA\htdocs ServerName www.siteA.com #... </VirtualHost> <VirtualHost 192.168.1.2> DocumentRoot c:\repB\htdocs ServerName www.siteB.com #... </VirtualHost>

Le soucis c'est que si je tape http://siteB.com dans le navigateur, le nom exact "siteB.com" n'etant defini dans aucun virtualhost, c'est le contenu de siteA.com qui va s'afficher.

Pour pareer à cela je rajoute dans mon fichier de conf apache la ligne :

Code : Tout sélectionner

<VirtualHost 192.168.1.2> ServerName siteB.com Redirect / http://siteB.com </VirtualHost>
Mais maintenant je voudrais rediriger n'importe quel sous domaine de siteB.com vers http://www.siteB.com et n'importe quel sous domaine de siteA.com vers http://www.siteA.com

Est ce qu'on peut gérer cela via des directives apache?

j'ai tenté ceci : mettre le code suivant avant les virtualhosts :

Code : Tout sélectionner

#REDIRECTION DES SOUS DOMAINES VERS LE BON DOMAINE : <VirtualHost 10.39.39.101> RewriteEngine On RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9\-]*)\.siteB\.com$ [NC] RewriteRule ^(.*) http://www.siteB.com/$1 [QSA,L,R=301] RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9\-]*)\.siteB\.com$ [NC] RewriteRule ^(.*) http://www.siteB.com/$1 [QSA,L,R=301] </VirtualHost>
mais cela n'a pas réussi, j'ai toujours le contenu de siteA.com qui s'affiche si je tape tototest.siteB.com, or je voudrais que ce soit celui de siteB.com

si je mets ce code après cela ne marche pas non plus, si je prends (.*)\.siteB\.com en expression régulière, cela ne marche pas non plus.
.
quelqu'un a une idée?