Sous-domaines dynamiques (Bind, Apache et .htaccess)
16 messages • Page 1 sur 2 • 1, 2
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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...
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.
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)
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.
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' ?
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.
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 !!
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.
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.
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.
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 ?
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.
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- 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
- Séminaire URL Rewriting et sites dynamiques
- Google surveille les sites qui créent soudainement de nombreux sous-domaines
- Comment éviter les contenus dupliqués (avec/sans le www)
- L'URL Rewriting expliqué aux débutants
- Bonnes pratiques de référencement : sous-domaines ou répertoires ?
- Se former au référencement : séminaire Ranking Metrics à Lyon les 17-18 Juin
- Tutoriel URL Rewriting
- Multi sous-domaines, apache et htaccess ?
- Sous domaines - Apache 2, Bind9, Htaccess, Url rewrite...
- Sous domaines dynamiques
- [Résolu] Sous domaines dynamiques
- .htaccess pour restreindre un access et apache sous windows
- Htaccess et sous domaines
- sous domaines virtuels et htaccess
- Probleme .htaccess et Sous domaines
- htaccess, sous domaines, et xoops
- .htaccess pour sous-domaines
- htaccess 404 pour sous-domaines
- Probleme .htaccess , sous domaines et erreur 500
- Gestion des sous-domaines avec un htaccess
- La place de htaccess dans plusieurs sous-domaines
- [url rewiting] - Sous domaines avec un .htaccess
Consultez la description détaillée des produits ou services de Google suivants : Omnisio, 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



le forum