htacces : probleme avec RewriteCond %{HTTP_HOST}

WRInaute discret
Bonjour,

Je rencontre un pb avec la fonction RewriteCond sur des alias de domaine.
GG m'a scrawler les alias et je me retrouve avec des vielles pages qui n'existent plus sur le domaine principal aujourd'hui.
Tous les alias pointent vers le serveur principal utilisé aujourd'hui et je voudrai rediriger toutes les anciennes pages vers la home du domaine principal.

J'ai donc
Code:
RewriteCond %{HTTP_HOST} !^www#nouveau-domaine#fr$
RewriteRule ^(.*)$   http://www#nouveau-domaine#fr/  [QSA,R=301]

Ca fonctionne pour rediriger
Code:
http://www#ancien-domaine#fr/
mais si j'ajoute une url de page :
Code:
http://www#ancien-domaine#fr/mapage...
ça redirige vers
Code:
http://www#nouveau-domaine#fr/mapage...

Comment faire pour rediriger toutes les pages vers
Code:
 http://www#nouveau-domaine#fr/
sans qu'il reprenne l'ancienne page ?

Merci pour votre aide ;-)
 
WRInaute passionné
cette règle est bonne (a part des # a la place de \.)
tu dois avoir une autre règle qui le fait : par exemple une règle pour ajouter le www.
 
WRInaute discret
Oui j'ai bien des . à la place des # c'était pour ne pas mettre d'url dans le forum, mais la règle... je comprends pas pourquoi elle ne redirige pas toutes les pages vers l'index sous ne nouveau domaine ?
Elle garde l'ancienne page et l'ajoute à la fin du nouveau domaine au lieu de na pas tenir compte de la page.
 
WRInaute passionné
essaye avec cette règle :
Code:
RewriteCond %{HTTP_HOST} !^www\.nouveau-domaine\.fr$
RewriteRule .* http://www.nouveau-domaine.fr/  [R=301,L]
 
WRInaute discret
Merci, je viens de tester mais toujours pas. Il prend toujours ce qui passe après .fr/mapage.html et le redirige en .com/mapage.html au lieu de .com/
 
WRInaute passionné
ca ne peut pas venir de cette règle. il y a forcément une autre règle qui créé ce comportement.
 
WRInaute discret
Oui j'ai effectivement d'autres règles dans le fichier. Notamment des règles d'url rewriting. Tu penses que ça créer un conflit ?
 
WRInaute passionné
l'ordre des règles est important. C'est la première qui match qui est appliquée.
De plus une fois une règle identifiée, le moteur de réécriture en cherche d'autre pouvant s'appliquer en repartant du début du fichier htaccess (ce qui génère parfois des boucles).
 
WRInaute discret
Arf... c'est une misère ce htaccess. Donc même en mettent cette règle tout à la fin du htaccess ça ne change rien, il repart du début pour voir si il peut pas en appliquer une autre une fois cette règle exécutée. Ca va devenir compliqué :cry:
 
WRInaute passionné
en l'occurrence je pense que c'est l'inverse : une autre règle placée avant match. Tu dois avoir une règle comme ca :
Code:
RewriteCond %{HTTP_HOST} !^www\.nouveau-domaine\.fr$
RewriteRule ^(.*)$ http://www.nouveau-domaine.fr/$1  [R=301,L]
 
WRInaute passionné
si tu places la règle comme première règle de réécriture du htaccess et en inversant la condition ca doit marcher :
Code:
RewriteCond %{HTTP_HOST} ^www\.ancien-domaine\.fr$
RewriteRule ^(.*)$   http://www.nouveau-domaine.fr/  [QSA,R=301]
 
WRInaute discret
Un grand merci Forty, placé en 1er avec la dernière règle ça fonctionne !
A quoi sert [QSA ?
En fait j'ai également un problème de redirection chez Gandi, depuis tout à l'heure je suis sur un alias mal configurer qui utilise un redirection des DNS. Je viens de changer le CNAME mais je ne pense pas que le retour soit immédiat, combien temps il faut pour qu'ils le prennent en compte... c'est autre chose.

Mais sur les alias bien configurés ça tourne ;-)
Merci encore, quelle galère ces redirection...
 
WRInaute passionné
QSA veut dire Query String Append : il ajoute les paramètres GET de l'url d'origine à l'url de destination.

Pour le reste je ne suis pas compétent. Ouvre plutôt un autre topic.
 
WRInaute discret
Merci encore, non le reste c'est bon je pense que c'est un délais à attendre pour que le nouveau CNAME soit pris en compte.
Je ferai quand même un ptit topic si ça ne bouge pas d'ici 24h ;-)
 
Discussions similaires
Haut