Réécriture inversée .htaccess sans boucle?
-
06-07-2019 - |
Question
J'ai une page existante appelée bfly.php que je dois changer en butterfly-jewelry.php .
Je veux faire en sorte que si quelqu'un accède à l'URL butterfly-jewelry.php , il obtienne la page bfly.php mais l'url ne change pas, il reste en tant que butterfly- jewelry.php . MAIS aussi si quelqu'un va directement à bfly.php l'URL change en butterfly-jewelry.php
Y a-t-il un moyen de faire cela sans rester coincé dans une boucle de réécriture?
Merci!
La solution
Vous pouvez renommer le fichier, par exemple. bfly1.php, puis utilisez ceci:
RewriteRule ^butterfly-jewelry\.php bfly1.php [L,QSA]
RewriteRule ^bfly\.php http://yourhost.com/butterfly-jewelry.php [L,QSA,R=301]
(J'ai essayé la solution de Blixt, mais cela a provoqué une boucle infinie malgré le drapeau L.)
Autres conseils
Vous pouvez utiliser les indicateurs Last Rule et Redirect pour faire ce que vous voulez (voir la documentation de mod_rewrite ):
# Rewrite request to bfly.php, and then stop the rewrite engine.
RewriteRule ^butterfly-jewelry\.php$ bfly.php [L]
# Redirect the client to butterfly-jewelry.php with "Permanently Moved" status
RewriteRule ^bfly\.php$ butterfly-jewelry.php [L,R=301]
Je n'ai pas testé ce qui précède, mais je crois que cela devrait fonctionner.