RewriteRule qui ne marche pas (?)
Le
pehache

Bonjour,
dans un .htaccess j'ai deux RewriteRule très similaires :
=
RewriteEngine on
RewriteRule ^art.php3?id_article=([0-9]+) art.php3%3Fid_article=$1.html
RewriteRule ^_archives.php3?date=([0-9]+) _archives.php3%3Fdate=$1.html
=
La première fait exactement ce qu'elle est censée faire, par contre la
seconde ne fait rien du tout. Si dans le navigateur je tape l'adresse :
/_archives.php3?date 10
elle reste comme ça au lieu de devenir
/_archives.php3%3Fdate 10.html
Une explication ?
--
"sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
dans un .htaccess j'ai deux RewriteRule très similaires :
=
RewriteEngine on
RewriteRule ^art.php3?id_article=([0-9]+) art.php3%3Fid_article=$1.html
RewriteRule ^_archives.php3?date=([0-9]+) _archives.php3%3Fdate=$1.html
=
La première fait exactement ce qu'elle est censée faire, par contre la
seconde ne fait rien du tout. Si dans le navigateur je tape l'adresse :
/_archives.php3?date 10
elle reste comme ça au lieu de devenir
/_archives.php3%3Fdate 10.html
Une explication ?
--
"sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
C'est surprenant que l'une ou l'autre marche le moins du monde, dans la
mesure où tu as un ? pas protégé. Comment fais-tu tes tests ?
En live sur le site lui-même (hébergement OVH)
La règle qui marche (oui, c'est "article.php3" et pas "art.php3", j'ai
raccourci pour le post, ça ne change rien au principe) :
http://alternatives-paloises.com/article.php3?id_articlef37
Celle qui ne marche pas (la règle que j'ai postée est exactement celle
du htaccess) :
http://alternatives-paloises.com/_archives.php3?date 04
Ca renvoie bien quelque chose : le contenu d'un fichier
_archives.php3.html qui est présent à la racine. Alors que j'attends ceci :
http://alternatives-paloises.com/_archives.php3%3Fdate 04.html
Sinon :
http://prntscr.com/irtjpc
(c'est un site SPIP qui a été converti en statique avec wget)
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
... renvoie :
HTTP/1.1 302 Found
Location: http://alternatives-paloises.com/article.php3%3Fid_articlef37.html
Ce n'est pas l'oeuvre de la rewrite engine, la rewrite engine travaille
en interne, les modifications des URL ne sont pas renvoyées au client.
C'est autre chose qui fait la réécriture quelque part.
Ah merde, t'as raison ! Cette première règle est en fait depuis
longtemps dans le .htaccess mais effectivement maintenant je me souviens
qu'elle ne marchait pas ! On avait finalement mis en place un script
article.php3 qui faisait la redirection souhaitée.
Du coup je suppose qu'en faisant un script similaire _archive.php3 ça le
ferait aussi.
Néanmoins : que faudrait-il changer dans ces règles pour qu'elles
fonctionnent et que le serveur ne recherche pas le script php ?
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
D'ailleurs ça le fait.
--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
Débugger pas à pas. Je te conseille de t'occuper en premier du point
d'interrogation, qui est actif pour les regexps.