+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Membre régulier Avatar de zarohn
    Inscrit en
    mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mai 2009
    Messages : 148
    Points : 72
    Points
    72

    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

  2. #2
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 495
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 495
    Points : 12 783
    Points
    12 783

    Par défaut

    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

  3. #3
    Membre régulier Avatar de zarohn
    Inscrit en
    mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mai 2009
    Messages : 148
    Points : 72
    Points
    72

    Par défaut

    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...

  4. #4
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 495
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 495
    Points : 12 783
    Points
    12 783

    Par défaut

    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

  5. #5
    Membre régulier Avatar de zarohn
    Inscrit en
    mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mai 2009
    Messages : 148
    Points : 72
    Points
    72

    Par défaut

    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.

  6. #6
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 495
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 495
    Points : 12 783
    Points
    12 783

    Par défaut

    Pas du tout Le plus simple c'est peut-être d'aller consulter la doc Apache, je pense :
    • 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

  7. #7
    Membre régulier Avatar de zarohn
    Inscrit en
    mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mai 2009
    Messages : 148
    Points : 72
    Points
    72

    Par défaut

    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

  8. #8
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 495
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 495
    Points : 12 783
    Points
    12 783

    Par défaut

    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

  9. #9
    Membre régulier Avatar de zarohn
    Inscrit en
    mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mai 2009
    Messages : 148
    Points : 72
    Points
    72

    Par défaut

    Super merci Mac



    Je passe le sujet en résolu...
    Bye

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •