Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/05/2011, 22h07   #1
zarohn
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 148
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2009
Messages : 148
Points : 67
Points : 67
Par défaut Un .htaccess pour supprimer les sous-domaines

Bonjour

Je suis actuellement sur un hébergeur ou j'ai un primary domain (http://aaa.com). Lorsque je créée un addon domain (http://bbb.com), il me rend automatiquement ce site accessible via http://bbb.aaa.com. Ce que je voudrais c'est que bbb soit uniquement accessible via http://bbb.com et je veux donc réécrire tout ce qui serait tapé en sous domaine de aaa en adresse principale :

Quelques exemples valent plus qu'un long discours

- Que http://bbb.aaa.com soit réécrit en http://aaa.com
- Que http://ccc.aaa.com soit réécrit en http://aaa.com
- Que http://ccc.aaa.com/123 soit réécrit en http://aaa.com/123
etc... vous voyez le principe.

Auriez vous une idée de comment réaliser ceci ?
Merci d'avance
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 21h29   #2
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 131
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 131
Points : 10 672
Points : 10 672
Tu es sûr qu'un add-on domain peut être quelque chose comme bbb.com ? Tu as acheté bbb.com ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/05/2011, 21h54   #3
zarohn
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 148
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2009
Messages : 148
Points : 67
Points : 67
Salut,

Oui c'est justement le principe des add-on domains. Quand on est chez un hébergeur avec une offre à nom de domaine illimité on peut héberger sur son compte autant qu'on veut de domaines achetés.

On a donc un primary domain monpremiersite.com qui est son site principal et qui se stocke dans /public_html, puis autant d'addon domains que l'on veut qui se stockent dans des sous répertoires (par exemple /public_html/mondeuxiemesite.com /public_html/montroisiemesite.com etc...)

Chacun étant par la suite accessible via son adresse propre
http://monpremiersite.com
http://mondeuxiemesite.com
http://montroisiemesite.com

Donc jusque la pas de souci !
Mais comme je disais dans mon premier message, le problème est
que ça rend automatiquement aussi accessible les addons via
http://mondeuxiemesite.monpremiersite.com
http://montroisiemesite.monpremiersite.com

Et c'est ça que j'aimerais empêcher...
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 14h24   #4
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 131
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 131
Points : 10 672
Points : 10 672
OK. Dans le .htaccess de public_html (le document root du site principal), je mettrais un truc du genre :
Code :
1
2
3
4
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(.*)\.monpremiersite.com
RewriteRule (.*) http://%1.com/$1 [R=301,L]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/05/2011, 20h37   #5
zarohn
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 148
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2009
Messages : 148
Points : 67
Points : 67
Salut merci de la réponse.
En fait j'essaye d'abord de comprendre ce que tu as écrit. Je tente de traduire dis moi si c'est faux :

Code :
RewriteCond %{HTTP_HOST} ^(.*)\.monpremiersite.com
- La tu stocke HTTP_HOST dans la variable %1 puis tu dis qu'on va réécrire tout ce qui est avant le com (com compris)

Code :
RewriteRule (.*) http://%1.com/$1
- La tu réécris le tout en http://[http_host].com/[suitedel'url]

%1 contenant monpremiersite et $1 contenant la suite de l'url s'il y en a une (ce qu'il y a après le com)
Est-ce que c'est ça ? Si oui ou est affecté $1.
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 21h33   #6
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 131
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 131
Points : 10 672
Points : 10 672
Pas du tout Le plus simple c'est peut-être d'aller consulter la doc Apache, je pense :
Citation:
  • références arrières de règle de réécriture : ce sont des références arrières de la forme $N (0 <= N <= 9), qui donnent accès aux parties groupées (entre parenthèses) du modèle tiré de la RewriteRule assujettie au jeu de conditions concerné.
  • Références arrières de condition de réécriture : ce sont des références arrières de la forme %N (1 <= N <= 9), qui donnent accès aux parties groupées (là aussi entre parenthèses) du modèle de la dernière condition [RewriteCond] satisfaite du jeu de conditions concerné.
Donc si on a :
Code :
RewriteCond %{HTTP_HOST} ^(.*)\.monpremiersite.com
on dit d'abord : "si la variable HTTP_HOST (= valeur de l'en-tête Host: de la requête = nom du site) contient la chaîne de caractère '.monpremiersite.com'". Le fait d'avoir mis (.*) avant le .mon... fait qu'on va se retrouver pour la RewriteRule suivante avec une variable %1 qui contiendra tout ce qui précède '.monpremiersite.com' dans le nom du site. En clair, cela signifie qu'on aura %1 = mondeuxiemesite si l'utilisateur demande http://mondeuxiemesite.monpremiersite.com. Au passage, y a une astuce : la condition est sur '.monpre...' ce qui fait que l'URL http://monpremiersite.com ne valide pas cette condition (car pas de . devant 'monpremiersite.com' et donc l'URL par défaut n'est pas réécrite.

Ensuite, si on a :
Code :
RewriteRule (.*) http://%1.com/$1 [R=301,L]
on dit "réécris 'n'importe quoi' (qu'on stocke au passage dans $1) vers http://<le groupe entre parenthèses de la RewriteCond précédente>.com/<ce n'importe quoi> et on redirige de manière permanente (le [R=301])".

Si on met tout ça bout à bout :C'est plus clair ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/05/2011, 22h42   #7
zarohn
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 148
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2009
Messages : 148
Points : 67
Points : 67
Merci infiniment Mac pour cette explication, c'est beaucoup plus clair.
Je vais faire tout un tas de tests demain pour essayer d'appliquer ça, la je ne peux pas.

Par contre ce que tu as écrit maintenant que je le comprend n'est pas exactement ce que je voulais, je ne voulais pas rediriger http://toto.monpremiersite.com/untrucoupas vers http://toto.com/untrucoupas mais plutôt http://toto.monpremiersite.com/untrucoupas vers http://monpremiersite.com/untrucoupas, voir mon premier post.

Mais ce n'est pas grave maintenant que j'ai compris grâce à tes explications j'essayerai de mettre ça en application ...

Merci encore
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 10h42   #8
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 131
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 131
Points : 10 672
Points : 10 672
Pardon, je n'avais pas bien lu. C'est plus simple, tu coup : il suffit de ne plus utiliser %1 dans la RewriteRule et de mettre monpremiersite à la place :
Code :
1
2
RewriteCond %{HTTP_HOST} ^(.*)\.monpremiersite.com
RewriteRule (.*) http://monpremiersite.com/$1 [R=301,L]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 03h23   #9
zarohn
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 148
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2009
Messages : 148
Points : 67
Points : 67
Super merci Mac



Je passe le sujet en résolu...
Bye
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h26.


 
 
 
 
Partenaires

Hébergement Web