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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #26467535
pehache , dans le message
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 :

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 ?
pehache
Le #26467543
Le 15/03/2018 à 23:18, Nicolas George a écrit :
pehache , dans le message
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 :

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
Nicolas George
Le #26467563
pehache , dans le message
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

... 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.
pehache
Le #26467703
Le 16/03/2018 à 09:12, Nicolas George a écrit :
pehache , dans le message
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

... 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
pehache
Le #26467702
Le 16/03/2018 à 21:35, pehache a écrit :
Du coup je suppose qu'en faisant un script similaire _archive.php3 ça le
ferait aussi.

D'ailleurs ça le fait.
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
Nicolas George
Le #26467708
pehache , dans le message
Néanmoins : que faudrait-il changer dans ces règles pour qu'elles
fonctionnent et que le serveur ne recherche pas le script php ?

Débugger pas à pas. Je te conseille de t'occuper en premier du point
d'interrogation, qui est actif pour les regexps.
Publicité
Poster une réponse
Anonyme