RewriteRule , # et %2F

Bonjour,

je début dans les ré-écritures d'URL et j'ai deux petits soucis. voici une première règle :

RewriteRule (?i)^news/([0-9]+)(/.*)?$ /news.php?id=$1\#$1

pour ré-écrire un url du genre "/news/123/Bonjour.htm" en "/news.php?id=123#123"

mais le problème est que le dièse est considéré comme délimiteur de commentaire, et le $1 de fin de ligne n'est pas pris en compte. comment faire ? dans les tutoriels je vois indiqué qu'il faut escaper le #, je mets donc \# mais ça ne change rien, est-ce peut-être du à une erreur de configuration en amont?

avec la même règle, si le texte qui suit contient "%2F" , elle ne marche pas. exemple : "/news/123/Bonjour%2FAurevoir.htm" (%2F étant le urlencode de "/" ). comment se fait-il ? l'URL "/news/123/Bonjour/Aurevoir.htm" est parfaitement matchée par la règle, cependant...

à bientot !
 
Wishmaster7 a dit:
RewriteRule (?i)^news/([0-9]+)(/.*)?$ /news.php?id=$1\#$1

pour ré-écrire un url du genre "/news/123/Bonjour.htm" en "/news.php?id=123#123"

Si tu ne fais pas un redirect ça ne sert à rien: le # est interprété par le navigateur, pas le serveur, et un rewrite sans redirect c'est purement interne au serveur (i.e. le navigateur ne verra jamais la nouvelle URL).

Jacques.
 
le # est une information destinée au client qui n'est pas envoyé au serveur. Pour être positionné à un endroit précis, il faut appeler l'url avec l'ancre :
/news/123/Bonjour.htm#123
 
je sais pas ce qu'il ont tous avec cette ancre. Pourquoi essayer de réécrire des urls qui n'existent qu'en local ^^
 
merci pour votre aide, à présent j'ai compris où était mon erreur et j'ai pu corriger ça !

pour le %2F je ne sais pas ce que c'est, mais avec un str_replace je m'en sort alors c'est pas bien grave :o
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut