Seb2nim Posté 10 Octobre 2007 Posté 10 Octobre 2007 (modifié) Bonjour, J'ai un petit problème de redirection que j'ai beaucoup de mal à comprendre : J'ai un nom de domaine 'mon-domaine.com'. J'ai créé un sous-doumaine 'sub'. Finalement, au bout d'une semaine, mon 'client' ne trouvait plus à son goût l'adresse "http://sub.mon-domaine.com", j'ai donc mis en place une redirection. De plus, nous souhaitons supprimer les 'www' des url. Le tout marche presque bien : mon problème : http://www.mon-domaine.com ==> http://mon-domaine.com OK http://sub.mon-domaine.com ==> http://mon-domaine.com/sub/ OK http://www.sub.mon-domaine.com ==> http://mon-domaine.com/sub/ OK MAIS : http://www.mon-domaine.com/sub/ ==> http://mon-domaine.com/ Ce qui ne me va pas du tout Voici l'extrait de mon .htaccess : # Rewrite www.domain.com to domain.comRewriteCond %{HTTP_HOST} ^www\.(.*)RewriteRule ^(.*) http://%1/$1 [R,L]# Rewrite sub to /subRewriteCond %{HTTP_HOST} ^sub\.mon-domaine\.com$RewriteCond %{REQUEST_URI} ^($|/.*$)RewriteRule ^.* http://mon-domaine.com/sub%1 [R=permanent,L] 'sub' est un répertoire à la racine. Hebergé sur ovh plan D'avance merci de votre éclairage. Modifié 10 Octobre 2007 par Seb2nim
Jeanluc Posté 11 Octobre 2007 Posté 11 Octobre 2007 J'essaierais ceci: RewriteCond %{HTTP_HOST} ^sub\.domaine\.com$RewriteCond %{HTTP_HOST} ^www\.sub\.domaine\.com$ [OR]RewriteRule ^(.*) http://www.domaine.com/sub/$1 [QSA,L,R=301] Jean-Luc
Dan Posté 11 Octobre 2007 Posté 11 Octobre 2007 J'essaierais ceci: RewriteCond %{HTTP_HOST} ^sub\.domaine\.com$RewriteCond %{HTTP_HOST} ^www\.sub\.domaine\.com$ [OR]RewriteRule ^(.*) http://www.domaine.com/sub/$1 [QSA,L,R=301] Jean-Luc Plutôt comme ceci, en mettant le flag [OR] en fin de la première condition, non ? RewriteCond %{HTTP_HOST} ^sub\.domaine\.com$ [OR]RewriteCond %{HTTP_HOST} ^www\.sub\.domaine\.com$ RewriteRule ^(.*) http://www.domaine.com/sub/$1 [QSA,L,R=301] ou encore RewriteCond %{HTTP_HOST} ^(www\.)?sub\.domaine\.com$ RewriteRule ^(.*) http://www.domaine.com/sub/$1 [QSA,L,R=301] Dan
Seb2nim Posté 15 Octobre 2007 Auteur Posté 15 Octobre 2007 Merci pour la rapidité de vos réponses mais je sépare bien le problème en deux parceque j'heberge plus que simplement ce sous-domaine : 1) Je veux que les url en 'www' soient redirigées sans 'www'. Pour tout ce site (tout ce domaine) 2) Pour mon vieux sous-domaine : je veux que les anciens liens (commencant par sub.mon-domaine.com) soient dirigés vers mon-domaine.com/sub/... Je tenterai donc : 1) # Rewrite any 'www' url to 'non-www'RewriteCond %{HTTP_HOST} ^www\.(.*)[b]$[/b]RewriteRule ^(.*) http://%1/$1 [[b]QSA[/b],L,R=301] C'est à dire ce que j'ai posté auparavant plus : '$' en fin de RewriteCond pour délimiter la fin de pattern. Je pense que l'erreur venait de là... Cette RewriteCond devrait etre vraie pour toute url commencant par 'www.' je retrouverai le hostname (sans 'www.') ayant groupé sur '.*' et pourrai le ré-utiliser par "RewriteCond backreference" : %1. La RewriteRule ^(.*) vers http://%1/$1 devrait donc m'amener à l'url sans 'www.', plus le reste (le '.*' de RewriteRule) Je note le QSA sur la RewriteRule... Bien vu ! 2) # Rewrite 'sub.mon-domaine.com/*' to 'mon-domaine.com/sub/*'RewriteCond %{HTTP_HOST} ^sub\.mon-domaine\.com$RewriteCond %{REQUEST_URI} ^($|/.*$)RewriteRule ^.* [url="http://mon-domaine.com/sub%1"]http://mon-domaine.com/sub%1[/url] [L,R=301] Que je conserve tel quel... En définitive, la premiere règle de ré-ecriture (des 'www' en 'non-www') etant en [L], je ne peux rencontrer 2) que pour des url sans www... Si j'ai bien pigé Pourriez-vous me confirmer que ma démarche est correcte ? Euh, simplequestion mais il se trouve que j'ai vraiment un '-' dans mon nom de domaine je n'ai pas à l'escaper hein??? Autre chose : Auparavant, j'avais déclaré au niveau de mon 'manager ovh' (outil d'admin chez OVH) que mon sous domaine était redirigé vers la racine de mon espace (physique quoi). Vu que maintenant, je souhaite que ce sous-domaine soit géré comme un 'répertoire', car il est physiquement placé dans un répertoire 'sub', je suis tenté de parametrer ce sous domaine pour qu'il pointe sur le repertoire phisique 'sub'. Auquel cas : Dois-je ré-écrire un htaccess dans le repertoire 'sub' ou est-ce que le sous-répertoire 'sub' 'hérite' de toutes facons de celui du répertoire racine ? Il me semble qu'il en hérite... Vous en pensez quoi ? Encore merci. PS : J'ai cherché un peu mais sans succès alors si vous connaissez une sorte d'utilitaire à la mise au point de htaccess, je suis preneur : Meme une bonne vielle classe java en ligne de commande, ca me va... Ca doit bien exister non ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant