Sous-domaines dynamiques (Bind, Apache et .htaccess)
16 messages
• Page 1 sur 2 • 1, 2
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Sous-domaines dynamiques (Bind, Apache et .htaccess)
Bonjour,
Je sais que le sujet a déjà été traité plusieurs fois... mais je n'ai pas réussi à trouver la solution qui me convient.
J'ai un serveur dédié (OVH) sur lequel j'héberge tous mes sites.
Pour l'un deux, je souhaite donc gérer les sous-domaines de manière automatique.
*http://bar.domaine.com -> *http://www.domaine.com/index.php?foo=bar
J'ai modifié le .htaccess à la racine de domaine.com:
J'ai modifié la zone DNS:
Et mon httpd.conf:
Alors, mes sql.domaine.com etc... fonctionnent bien,
Mais tous les sous-domaines qui devraient être pris en compte par le wildcard... non.
En fait, ils pointent (à priori) bien sur mon serveur, mais à la racine du serveur.
Je ne sais pas comment les faire pointer sur mon domaine, pour que le .htaccess prenne le relais...
Je sais que le sujet a déjà été traité plusieurs fois... mais je n'ai pas réussi à trouver la solution qui me convient.
J'ai un serveur dédié (OVH) sur lequel j'héberge tous mes sites.
Pour l'un deux, je souhaite donc gérer les sous-domaines de manière automatique.
*http://bar.domaine.com -> *http://www.domaine.com/index.php?foo=bar
J'ai modifié le .htaccess à la racine de domaine.com:
- Code: Tout sélectionner
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domaine.com
RewriteCond %{HTTP_HOST} !^sql\.domaine.com
RewriteCond %{HTTP_HOST} !^admin\.domaine.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.domaine.com
RewriteRule ^(.*)$ /index.php?foo=%1
J'ai modifié la zone DNS:
- Code: Tout sélectionner
...
imap IN A 213.251.181.112
sql IN A 213.251.181.112
mysql IN A 213.251.181.112
* IN A 213.251.181.112
Et mon httpd.conf:
- Code: Tout sélectionner
...
<VirtualHost 213.251.181.112>
DocumentRoot /home/domaine/www
ServerName *.domaine.com
</VirtualHost>
<VirtualHost 213.251.181.112>
ServerAdmin webmaster@domaine.com
DocumentRoot /home/domaine/www
User domaine
Group users
ServerName www.domaine.com
ServerAlias domaine.com
CustomLog logs/domaine-access_log combined
ScriptAlias /cgi-bin/ /home/domaine/cgi-bin/
</VirtualHost>
Alors, mes sql.domaine.com etc... fonctionnent bien,
Mais tous les sous-domaines qui devraient être pris en compte par le wildcard... non.
En fait, ils pointent (à priori) bien sur mon serveur, mais à la racine du serveur.
Je ne sais pas comment les faire pointer sur mon domaine, pour que le .htaccess prenne le relais...
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Sous-domaines dynamiques (Bind, Apache et .htaccess)
doic a écrit:J'ai un serveur dédié (OVH) sur lequel j'héberge tous mes sites.
Pour l'un deux, je souhaite donc gérer les sous-domaines de manière automatique.
*http://bar.domaine.com -> *http://www.domaine.com/index.php?foo=bar
Ce ne serait pas plus simple de vérifier la valeur de HTTP_HOST dans ton script?
doic a écrit:Et mon httpd.conf:
- Code: Tout sélectionner
...
<VirtualHost 213.251.181.112>
DocumentRoot /home/domaine/www
ServerName *.domaine.com
</VirtualHost>
<VirtualHost 213.251.181.112>
ServerAdmin webmaster@domaine.com
DocumentRoot /home/domaine/www
User domaine
Group users
ServerName www.domaine.com
ServerAlias domaine.com
CustomLog logs/domaine-access_log combined
ScriptAlias /cgi-bin/ /home/domaine/cgi-bin/
</VirtualHost>
Je ne suis pas sûr que tu puisses utiliser "*.domaine.com" dans un ServerName. Mais si aucun ServerName ou ServerAlias ne correspond, c'est le premier VirtualHost (pour cette IP) qui sera utilisé, donc il faut bien que l'entrée correspondante soit la première. Je suppose évidemment que tu as déjà un "NameVirtualHost 213.251.181.112" dans ton httpd.conf...
Pour vérifier que c'est le bon VirtualHost qui est pris en compte, mets-lui (par exemple) un DocumentRoot différent pour voir ce que ça donne. Regarde aussi la valeur du virtual host indiqué dans le log...
Jacques.
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Re: Sous-domaines dynamiques (Bind, Apache et .htaccess)
jcaron a écrit:Ce ne serait pas plus simple de vérifier la valeur de HTTP_HOST dans ton script?
Pour le moment, je n'accède pas au script, mes *.domaine.com pointent directement à la racine de mon serveur. (Ou bien je ne comprends pas ce que tu me dis)...
jcaron a écrit:Je ne suis pas sûr que tu puisses utiliser "*.domaine.com" dans un ServerName. Mais si aucun ServerName ou ServerAlias ne correspond, c'est le premier VirtualHost (pour cette IP) qui sera utilisé, donc il faut bien que l'entrée correspondante soit la première. Je suppose évidemment que tu as déjà un "NameVirtualHost 213.251.181.112" dans ton httpd.conf...
Pour vérifier que c'est le bon VirtualHost qui est pris en compte, mets-lui (par exemple) un DocumentRoot différent pour voir ce que ça donne. Regarde aussi la valeur du virtual host indiqué dans le log...
Jacques.
Effectivement, il faudrait peut-être avoir un ServerName *.domaine.com ?
Est-ce que tu peux me suggérer un bon virtualhost à configurer ?
(J'ai bien un "NameVirtualHost 213.251.181.112" dans mon httpd.conf)
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Sous-domaines dynamiques (Bind, Apache et .htaccess)
doic a écrit:jcaron a écrit:Ce ne serait pas plus simple de vérifier la valeur de HTTP_HOST dans ton script?
Pour le moment, je n'accède pas au script, mes *.domaine.com pointent directement à la racine de mon serveur. (Ou bien je ne comprends pas ce que tu me dis)...
Je dis que plutôt que faire des rewrite, tu fais tout pointer sur un script unique (ou en tous cas une arbo unique), et au début du/des script(s) tu prends la valeur de HTTP_HOST et tu en extrais ce qui t'intéresse, plutôt que de récupérer ça dans une variable.
doic a écrit:Effectivement, il faudrait peut-être avoir un ServerName *.domaine.com ?
Tu en as un, mais je ne suis pas sûr ce ça marche, et en tous cas ce n'est pas nécessaire: il suffit de mettre ton VirtualHost en premier pour qu'il récupère toutes les requêtes qui ne correspondent à aucun autre VirtualHost (via ServerName ou ServerAlias).
Jacques.
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Re: Sous-domaines dynamiques (Bind, Apache et .htaccess)
jcaron a écrit:Je dis que plutôt que faire des rewrite, tu fais tout pointer sur un script unique (ou en tous cas une arbo unique), et au début du/des script(s) tu prends la valeur de HTTP_HOST et tu en extrais ce qui t'intéresse, plutôt que de récupérer ça dans une variable.
OK, j'ai compris, c'est vrai que ça parait plus solide, et moins gourmand en ressources.
jcaron a écrit:Tu en as un, mais je ne suis pas sûr ce ça marche, et en tous cas ce n'est pas nécessaire: il suffit de mettre ton VirtualHost en premier pour qu'il récupère toutes les requêtes qui ne correspondent à aucun autre VirtualHost (via ServerName ou ServerAlias).
Hmmm... Donc j'utilise ServerName ou ServerAlias ?
Et je mets tout dans le même <VirtualHost> ?
Pourquoi le mettre en premier ? Il ne faudrait pas le mettre en dernier ? Pour qu'il soit pris en compte comme "redirection par défaut" si le sous-domaine ne correspond pas à 'www' ou 'sql' ?
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: Sous-domaines dynamiques (Bind, Apache et .htaccess)
doic a écrit:jcaron a écrit:Tu en as un, mais je ne suis pas sûr ce ça marche, et en tous cas ce n'est pas nécessaire: il suffit de mettre ton VirtualHost en premier pour qu'il récupère toutes les requêtes qui ne correspondent à aucun autre VirtualHost (via ServerName ou ServerAlias).
Hmmm... Donc j'utilise ServerName ou ServerAlias ?
Et je mets tout dans le même <VirtualHost> ?
Pourquoi le mettre en premier ? Il ne faudrait pas le mettre en dernier ? Pour qu'il soit pris en compte comme "redirection par défaut" si le sous-domaine ne correspond pas à 'www' ou 'sql' ?
Quand Apache ne trouve aucun VirtualHost qui corresponde à une requête, il utilise le premier (c'est dans la doc).
Donc:
NameVirtualHost adresse_ip
<VirtualHost adresse_ip>
ServerName default.domaine.com
DocumentRoot path_pour_wildcard
</VirtualHost>
<VirtualHost adresse_ip>
ServerName www.domaine.com
ServerAlias domaine.com
DocumentRoot path_pour_www
</VirtualHost>
<VirtualHost adresse_ip>
ServerName autre.domaine.com
DocumentRoot path_pour_autre
</VirtualHost>
Etc.
Bref: tu commences par celui par défaut (le ServerName importe peu, mais c'est lui que tu verras dans les logs, les messages d'erreur, et les redirects "locaux"), puis tu mets tous les "spécifiques".
Jacques.
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Je ne comprends pas, à quelle fréquence je peux faire mes essais ?
Je viens d'enlever tout ce qui concerne les sous-domaines dans mon httpd.conf, et rien ne change...
J'en déduis que rien ne marche après ma zone DNS...
J'ai lu sur un forum qu'il fallait mettre le wilcard dans le DNS et dans la conf d'apache, mais toi tu me dis que le wildcard ne marche pas dans apache ??
Aucun de mes tests ne débouche sur le DocumentRoot que je veux:
<VirtualHost 213.251.181.112>
ServerName *.domaine.com
DocumentRoot /home/domaine/www/domaines
</VirtualHost>
Rien à faire, avec ce bloc ou sans ce bloc, tout aboutit à la racine du serveur... même pas à l'accueil de mon domaine !!
Je viens d'enlever tout ce qui concerne les sous-domaines dans mon httpd.conf, et rien ne change...
J'en déduis que rien ne marche après ma zone DNS...
J'ai lu sur un forum qu'il fallait mettre le wilcard dans le DNS et dans la conf d'apache, mais toi tu me dis que le wildcard ne marche pas dans apache ??
Aucun de mes tests ne débouche sur le DocumentRoot que je veux:
<VirtualHost 213.251.181.112>
ServerName *.domaine.com
DocumentRoot /home/domaine/www/domaines
</VirtualHost>
Rien à faire, avec ce bloc ou sans ce bloc, tout aboutit à la racine du serveur... même pas à l'accueil de mon domaine !!
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
doic a écrit:Je ne comprends pas, à quelle fréquence je peux faire mes essais ?
Je viens d'enlever tout ce qui concerne les sous-domaines dans mon httpd.conf, et rien ne change...
Je suppose que tu relances bien ton serveur http?
doic a écrit:J'ai lu sur un forum qu'il fallait mettre le wilcard dans le DNS et dans la conf d'apache, mais toi tu me dis que le wildcard ne marche pas dans apache ??
Non, je dis que le virtualhost "wildcard" c'est le premier, peu importe le nom que tu lui mets.
doic a écrit:Aucun de mes tests ne débouche sur le DocumentRoot que je veux:
<VirtualHost 213.251.181.112>
ServerName *.domaine.com
DocumentRoot /home/domaine/www/domaines
</VirtualHost>
Rien à faire, avec ce bloc ou sans ce bloc, tout aboutit à la racine du serveur... même pas à l'accueil de mon domaine !!
On est bien d'accord que ce virtualhost est le premier de la liste?
Jacques.
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
jcaron a écrit:Je suppose que tu relances bien ton serveur http?
Oui, je relance le serveur à chaque fois...
jcaron a écrit:On est bien d'accord que ce virtualhost est le premier de la liste?
Jacques.
Ce n'est pas le premier de la liste (j'ai plusieurs domaines) mais c'est le premier concernant le domaine en question..
Je vais essayer en le mettant tout en haut... pour voir.
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
doic a écrit:Ce n'est pas le premier de la liste (j'ai plusieurs domaines) mais c'est le premier concernant le domaine en question..
Je vais essayer en le mettant tout en haut... pour voir.
Pour qu'il soit considéré comme le virtual host par défaut, il doit être le premier pour l'adresse IP associée.
Sinon en regardant un peu plus la doc d'Apache (mais ce n'est pas super explicite), je pense que tu peux mettre un *.domaine.com dans ServerAlias mais pas dans ServerName (ce dernier devrait être un "vrai" nom). A vérifier...
Jacques.
-

doic - WRInaute passionné

- Messages: 1147
- Inscription: 7 Nov 2003
Bon, je l'ai mis en tout premier, et maintenant, j'ai une erreur 500 si j'essaie d'accéder aux sous-domaines dynamiques.
Dès que je le redescends, ça me rebalance sur la racine du serveur...
Je dois donc avoir un problème dans mon bloc avec le wilcard ???
OK, je viens de voir la réponse ci-dessus...
Donc dans mon bloc, je mets seulement le ServerAlias ou un ServerAlias ET un ServerName ? Et dans ce cernier cas, je mets quoi dans le ServerName ? www.domaine.com ?
Dès que je le redescends, ça me rebalance sur la racine du serveur...
Je dois donc avoir un problème dans mon bloc avec le wilcard ???
OK, je viens de voir la réponse ci-dessus...
Donc dans mon bloc, je mets seulement le ServerAlias ou un ServerAlias ET un ServerName ? Et dans ce cernier cas, je mets quoi dans le ServerName ? www.domaine.com ?
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
doic a écrit:Bon, je l'ai mis en tout premier, et maintenant, j'ai une erreur 500 si j'essaie d'accéder aux sous-domaines dynamiques.
C'est que tu as un autre problème ailleurs, mais tes logs t'en diront plus.
doic a écrit:Donc dans mon bloc, je mets seulement le ServerAlias ou un ServerAlias ET un ServerName ? Et dans ce cernier cas, je mets quoi dans le ServerName ? www.domaine.com ?
Tu mets un ServerName et un ServerAlias. Le ServerName sera utilisé pour les messages d'erreurs, les logs, et les redirections locales. Il est aussi utilisé pour "matcher" les requêtes sur ce virtual host, donc si tu utilises www.domaine.com alors les requêtes sur ce domaine iront sur ce virtual host, ce dont je pense que ce n'est pas ce que tu veux, utilise donc un autre domaine "non spécifique". wildcard.domaine.com fait très bien l'affaire par exemple.
Jacques.
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
doic a écrit:Et je les trouve ou mes logs ?
A l'endroit indiqué par ta configuration (directive ErrorLog).
doic a écrit:Pour "wildcard.domaine.com", est-ce que je le mets comme ça dans le fichier de conf, ou je dois le déclarer aussi dans les DNS ?
Pas nécessaire, il sera "récupéré" par le *.domaine.com...
Jacques.
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Multi sous-domaines, apache et htaccess ?
- Sous domaines - Apache 2, Bind9, Htaccess, Url rewrite...
- Sous domaines dynamiques
- [Résolu] Sous domaines dynamiques
- sous-domaines dynamiques + problèmes etrange
- configuration serveur dedie apache 2 bind
- [PHP] Sous-domaines virtuels et MultiView Apache
- .htaccess pour restreindre un access et apache sous windows
- Import/export domaines dans Bind
- Htaccess et sous domaines
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Article sur le fichier .htaccess
- Outil de recherche des sous-domaines d'un site
- Comment éviter les contenus dupliqués (avec/sans le www)
- Séminaire URL Rewriting et sites dynamiques
- Google surveille les sites qui créent soudainement de nombreux sous-domaines
- Les sous-domaines, une solution à Google Panda ?
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
- Trouver les sous-domaines
Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
