Besoin d'un connaisseur pour HTACCESS

Résolu
Stef -  
 maniax -
Bonjour,

J'ai une question pour vous. J'ai un hébergement (infomaniak) et 2 noms de domaines qui ne seront pas dirigés au même endroit. J'ai déjà essayé plusieurs choses différentes trouvées sur GOOGLE, mais sans grand succès.

Je voudrais que le premier domaine (domaine principal): mondomaine.com oblige les www et reste à la racine de mon hébergement.

Le deuxième: mondomaine2.com soir plutôt redirigé vers un répertoire (rep) avec l'adresse rep.mondomaine2.com et que cette adresse soit affichée dans le browser.

Est-ce possible? Si oui pouvez-vous m'éclairer, car ce que je croyais facile au départ est devenu un cauchemar.

Merci à l'avance,

Stef

13 réponses

  1. maniax
     
    Hello,

    rep est un sous domaine réel ? ou tu veux faire du wildcard DNS record?
    0
  2. Stef
     
    Un sous domaine réel.

    Qu'est-ce que le wilcard DNS record? Désolé de mon ignorance.
    0
  3. kevin76110 Messages postés 5350 Statut Membre 875
     
    'lut,

    Je te passe le début de mon .htaccess :

    DirectoryIndex index.html index.php
    
    
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    RewriteRule ^(.*)$ index.php [F,L]
    
     
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.mon-site.fr [NC]
    RewriteRule ^(.*)$   http://www.mon-site.fr?d=%{HTTP_HOST} [QSA,R=301,L]
    </IfModule>
    
    <Files .htaccess>
    order allow,deny
    deny from all
    </Files>


    Moi, mon but était que avec www ou sans, on arrive sur mon site.
    C'est ma copine qui me l'a écrit ce .htaccess , moi je ne m'y connais pas trop trop.

    J'espère que ça pourra t'aider un ptit peu, même si ta demande est inverse ;)
    0
  4. maniax
     
    une simulation de sous-domaine en paramétrant le virtualhost + htaccess, je me penche sur ton cas, fais 2-3 tests et tente de t'apporter une réponse correcte
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Stef
     
    @ kevin76110: J'ai essayé mais sans grand succès. Ton htaccess ressemble à celui que j'ai actuellement. Merci beaucoup de ton aide.

    @ maniaz: merci de bien vouloir m'aider.
    0
    1. kevin76110 Messages postés 5350 Statut Membre 875
       
      j'aurais essayé ;)
      0
  7. maniax
     
    les DNS de tes deux domaines pointent bien au même endroit ?
    0
  8. maniax
     
    ca devrait ressembler à qqch du genre:

    Options +FollowSymlinks 
    RewriteEngine on 
    
    RewriteCond %{HTTP_HOST} ^mondomaine1\.fr$ 
    RewriteRule ^(.*) http://www.mondomaine1.fr/$1 [QSA,L,R=301] 
    
    RewriteCond %{HTTP_HOST} ^http://(www\.)?mondomaine2\.fr 
    RewriteRule ^(.*) http://rep.mondomaine2.fr/$1 [QSA,L,R=301] 
    


    Edit: le http:// de la ligne
    RewriteCond %{HTTP_HOST} ^http://(www\.)?mondomaine2\.fr
    
    est surement de trop ^^
    0
  9. Stef
     
    Oui, j'ai un domaine principal et des domaines secondaires et ils pointent tous à la racine. Si je créé un sous domaine test.domaine.com le sous domaine fonctionne aussi avec test.domaine2.com.

    Merci à l'avance,

    Stef
    0
  10. maniax
     
    Ma réponse est juste au dessus si jamais ;)
    0
  11. Stef
     
    @ maniax

    J'ai un peu modifié ton code et ça fonctionne maintenant. Pourrais-tu me dire si mon code est correctement écrit (pour les engins de recherche).

    Options +FollowSymlinks 
    RewriteEngine on 
    
    RewriteCond %{HTTP_HOST} ^domaine1\.com$ 
    RewriteRule ^(.*) http://www.domaine1.com/$1 [QSA,L,R=301] 
    
    RewriteCond %{HTTP_HOST} ^domaine2\.com$
    RewriteRule ^(.*) http://rep.domaine2.com/ [QSA,L,R=301]
    


    J'ai une question pour toi. Est-ce que chacun des RewriteCond ne lit que les RewriteRule sous lui. Je ne sais pas comment fonctionne l'ordre de priorité de ce fichier.

    Merci à l'avance,

    Stef
    0
  12. Stef
     
    Par contre si je tape: www.domaine2.com, ça ne fonctionne pas du tout... Il pointe à la racine.

    Je sens que ça approche...

    Merci,

    Stef
    0
    1. maniax
       
      Il fallait modifier la ligne comme ça: RewriteCond %{HTTP_HOST} ^(www\.)?mondomaine2\.fr

      Explications:

      ^ = Commence par
      (www\.) = suivi de www.
      ? = ce qui est situé avant est optionnel (en l'occurence le www)
      mondomaine2\.fr = suivi et ne se terminant pas forcement par .fr (redirige aussi les /index.php par exemple)

      Pour répondre à ta question, les RewriteRules lisent les RewriteCond situés au dessus d'eux, et le L de [QSA, L, R=301] = Last

      Si le htaccess à trouvé une correspondance dans un des rewriteCond, il s'arrête si le RewriteRule associé à un Last comme paramètre

      Edit: edit en souligné
      0
  13. Stef
     
    Un énorme merci... Tu es une vrai machine... J'ai passé tant de temps à essayer plein de chose et toi tu arrives avec la réponse en quelques minutes.

    Merci, merci, merci... :-)

    Je garde ce thread dans mes favoris pour le futur.

    Encore merci,

    Stef.
    0
  14. maniax
     
    De rien, de rien ! content de t'avoir aidé =)

    Un p'tit résolu pour le topic ? ^^

    Au plaisir !
    0