RewriteRule et dièse

Wishmaster7 -  
 Wishmaster7 -
Bonjour,

je début dans les ré-écritures d'URL et j'ai quelques questions simples. 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 ?

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 ?

dernière question au passage, j'ai remarqué que parfois il y a des notes du genre de celle-ci en fin de ligne :
[R=301,L]
quelqu'un aurait une URL de documentation sur comment configurer tout cela?

merci d'avance et à bientot !

2 réponses

Wishmaster7
 
hello !

merci pour les liens, ils vont vraiment beaucoup m'aider !

concernant les deux premières questions... le RewriteCond n'est pas obligatoire, la RewriteRule seule fonctionne. Enfin presque, les deux petits détails que je mentionne ne passent hélas pas. si quelqu'un a une solution....

note : pour le #, dans les tutoriels il est dit de l'escaper, je mets \# mais ça ne fonctionne toujours pas (erreur ailleurs dans la configuration?)
1
R4f Messages postés 441 Statut Membre 62
 
Les réécritures se font en 2 phases :
RewriteCond %{QUERY_STRING} "/[A-Z]+ ([^ \#]*)\#.*$"
RewriteRule ^.*$ %1 [L,R=301]


La première (RewriteCond) pose la condition (avoir une correspondance entre un élément, ici la requête QUERY_STRING) et l'expression régulière.

Le second où on indique comment on réécrit cette requête.

[R=301,L] : R pour Redirect, 301 pour statut 301 (Move Permanently) et L pour indiquer d'arrêter les traitement de réécriture (L pour Last)

Quelques références :

URL Rewriting Guide (en anglais)
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html

Tutoriel d'URL Rewriting (en français)
https://g-rossolini.developpez.com/tutoriels/seo/reecriture-url/?page=sommaire
0