Migration et url rewriting
Bonjour,
Je me permets de vous contacter car j'ai passé une bonne partie de ma matinée à chercher comment modifier le .htaccess afin de rediriger mes anciennes url vers les nouvelles de pluxml et je sèche. Il doit y avoir quelque chose qui m'échapppe.
Je suis passé d'url du type http://www.monsite.com/presentation.php à http://www.monsite.com/static2/presentation
Voilà ce que j'ai essayé (entre plein d'autres tests)
Selon les tests, ou il me dit que mon article n'existe pas ou il me fait complètement sauter tout (css, images), je n'ai plus que le HTML et il ne trouve quand même pas ma page statique.
Quelqu'un aurait une idée ?
Je me permets de vous contacter car j'ai passé une bonne partie de ma matinée à chercher comment modifier le .htaccess afin de rediriger mes anciennes url vers les nouvelles de pluxml et je sèche. Il doit y avoir quelque chose qui m'échapppe.
Je suis passé d'url du type http://www.monsite.com/presentation.php à http://www.monsite.com/static2/presentation
Voilà ce que j'ai essayé (entre plein d'autres tests)
[== Indéfini ==]
# BEGIN -- Pluxml
Options -Multiviews
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Réécriture des urls
RewriteRule ^presentation\.php$ static2/presentation [R=301]
RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]
RewriteRule ^feed\/(.*)$ feed.php?$1 [L]
</IfModule>
<Files "version">
Order allow,deny
Deny from all
</Files>
# END -- Pluxml
Selon les tests, ou il me dit que mon article n'existe pas ou il me fait complètement sauter tout (css, images), je n'ai plus que le HTML et il ne trouve quand même pas ma page statique.
Quelqu'un aurait une idée ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En fait c'était un problème d'ordre dans mes règles. En regardant les logs d'apache, j'ai vu des choses bizarres, j'ai mis mes règles avant celle de PluXml et ça marche !
Donc pour vos redirections mettez les directement après RewriteBase /
http://www.monsite.com/presentation.php se ré-écrit bien en http://www.monsite.com/static2/presentation :cool:
Après tests, le problème venait des 3 conditions, mais je ne sais pas pourquoi ...
J'ai bien été voir la signification, mais je ne comprends toujours pas pourquoi ça bloquait. Si quelqu'un peut expliquer :rolleyes:
Merci
Je n'ai pas vraiment d'explication à te donner, juste te confirmer que dans mon htaccess j'ai également des règles de réécritures d'url et c'est dans le même ordre que toi: après RewriteBase /
Consultant PluXml
Ancien responsable du projet (2010 à 2018)
Dans mon cas, ça "match", mais et après ? Il y a un truc que je ne comprends pas, c'est peut-être une spécificité PluXml vu qu'il fonctionne avec des fichiers ?
Ici ton fichier présentation.php existe. Donc la condition RewriteCond %{REQUEST_FILENAME} !-f n'est pas respectée. Donc il n'y a pas de réécriture.
Par contre, si tu mets directement RewriteRule ^presentation\.php index.php?static2-presentation [R=301,L] avant le test de condition, la réécriture se fera quoi qu'il arrive car les conditions ne seront testées pas après le flag L de [R=301,L].
(voir http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteRule)
C'est effectivement ce que j'avais compris, sauf que dans mon cas le fichier presentation.php n'existe pas non plus.
Le but de ma manipulation est de ne pas faire perdre le référencement des pages qui existaient avant, ni les marque pages éventuels des visiteurs.
C'est bizarre et c'est pour ça que je voulais comprendre car quand je mets ma règle après, PluXml à l'air de faire tout sauter étant donné que je n'ai même plus les images et css qui s'affichent.