IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Un .htaccess pour supprimer les sous-domaines


Sujet :

Apache

  1. #1
    Membre régulier Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Points : 94
    Points
    94
    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
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    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
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Points : 94
    Points
    94
    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
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    OK. Dans le .htaccess de public_html (le document root du site principal), je mettrais un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Points : 94
    Points
    94
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Points : 94
    Points
    94
    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
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    Points : 94
    Points
    94
    Par défaut
    Super merci Mac



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

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

Discussions similaires

  1. .htaccess pour gérer des sous-domaines
    Par Décibel dans le forum Apache
    Réponses: 4
    Dernier message: 15/05/2013, 10h07
  2. Mon htaccess ne fonctionne pas avec les sous-domaines
    Par pierrot10 dans le forum Apache
    Réponses: 3
    Dernier message: 04/06/2012, 08h54
  3. Réponses: 9
    Dernier message: 23/02/2009, 17h08
  4. pour supprimer les doublons d'une table qcq
    Par lamjed dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2008, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo