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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    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
    Par défaut
    Tu es sûr qu'un add-on domain peut être quelque chose comme bbb.com ? Tu as acheté bbb.com ?

  3. #3
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    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
    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]

  5. #5
    Membre confirmé Avatar de zarohn
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 148
    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
    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 ?

+ 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