Résolu Conflit de redirection dans le .htaccess

WRInaute impliqué
Bonjour,

Suite à une refonte de site je souhaite faire des redirections, seulement il y a un conflit.

J'ai de nombreuses pages du style ndd.com/promo-cdiscount.php et souhaite rediriger vers le nouveau format de pages du style ndd.com/promo/cdiscount
Seulement certaines pages doivent avoir une redirection spéciale par exemple ndd.com/promo-cdiscount.php vers ndd.com/promo/c-discount

Je met donc :
Code:
RedirectPermanent /promo-cdiscount.php https://www.example.com/promo/c-discount

Pour les autres pages je fais une redirection automatique, j'ajoute donc :

Code:
RewriteRule ^promo-([0-9A-Za-z]+).php$ https://www.example.com/promo/$1[R=301,L]


Tout fonctionne sauf que le RewriteRule prends le dessus sur RedirectPermanent, le lien ndd.com/promo-cdiscount.php redirige donc sur ndd.com/promo/cdiscount alors que je souhaite que ça redirige vers ndd.com/promo/c-discount


Merci beaucoup de votre aide.
 
Guest
Bonjour,

Ne mettez pas le nom de domaine si ce n'est pas une redirection de domaine à nouveau domaine

Essayez ça et donnez-moi l'erreur :


Code:
RedirectPermanent /promo-cdiscount.php /promo/c-discount

Code:
RewriteRule ^promo-([0-9A-Za-z]+).php$ /promo/$1[R=301,L]


A-Z est inutile si il n'y a pas de caractères en majuscule ;)

J'étais un pro du URL Rewriting mais là je suis rouillé alors par ici (c'est pas mon site hein ^^⁾) :

http://www.aliasdmc.fr/webmaster/webmaster_595.html : Aliasdmc.fr : Redirection nom de domaine, dossier et page - Webmaster
 
Guest
Je prépare un petit test sur un serveur, et je vous tiens au courant. c'est pas compliqué à faire, faut juste que je me remette dans le bain.

Pas de message d'erreur ? vous pouvez mettre votre site avec les deux liens ?
 
WRInaute passionné
Oui le cache de ton navigateur, si telle url a redirigé vers tel truc, ca continuera avec le cache du navigateur.
Pour tester sans cache remets des parametres bidons à la fin, style ?r=1234 et tu changes le chiffre.
car redirectpermanent envoie un code 301 et ta rewriterule aussi puisque tu le spécifies à la fin, donc le navigateur n'a pas besoin de redemander au serveur comme il doit le faire avec un code 302.
 
WRInaute impliqué
C'est particulier chez moi ça ne fonctionne pas même en vidant le cache.

Si j'indique
RedirectPermanent /promo-ebay.php /promo/test

Il renvoi /promo-ebay.php vers /promo/ebay
 
WRInaute passionné
toutes facons tu ferais mieux de convertir ton redirectpermanent en rewriterule à cause de l'ordre.

RewriteRule ^promo-cdiscount\.php$ /promo/c-cdiscount [L,R=301]

à mettre avant ton rewriterule generique bien sur, sinon c'est trop tard :)

Ton redirectpermanent est bien avant le rewriterule dans ton .htaccess (? à confirmer mais j'imagine bien) et pourtant il fait le rewriterule en premier.
 
Dernière édition:
Guest
Dernière édition:
Guest
c'est obligé que ça fonctionne ! sinon je mange mon chapeau ! :D videz votre cache SVP

Mettez le code que j'ai donné dans votre htaccess et donnez votre adresse de site l url original et l'url désirée ici

pouvez-vous me donner l'intégralité de votre htaccess que je regarde un peu. C'est vraiment pas compliqué à faire pourtant. Pas normal ^^

A toute à l'heure je vais dîner.
 
Dernière édition:
Guest
Nous avons trouvé la solution en MP, je fais donc partager, et le juste prix est :

RewriteRule ^live-eurosport.php$ /live/eurosport [L,R=301]


Problème résolu !
 
Discussions similaires
Haut