Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

.htaccess et détermination de l'url

2 réponses
Avatar
VarioFlux
Hello

Y-a-t il un moyen, quand on patauge dans des url transformée grace à
mod_rewrite de voir, au bout du compte, quelle est l'url réelle à
laquelle on accède...

par exemple :

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.eexample\.fr [NC]
RewriteRule (.*) http://www.example.fr/$1 [QSA,R=301,L]
# récupération erreur 404
ErrorDocument 404 /erreur-404.html
# Convertion directe des pages atttendues en lien
RewriteRule ^page-1.html$ index.php?pg=page-1 [L]
RewriteRule ^page-2.html$ index.php?pg=page-2 [L]
RewriteRule ^erreur-404.html$ index.php?pg=erreur-404 [L]
# et pour les url inatendues :
RewriteRule ^([^/]+).html$ index.php?pg=erreur-404&req=$1 [L]

en envoyant tralala comme url ça arrive à l'erreur apache malgré le
errordocument et avec tralala.html j'arrive à la bonne page erreur mais
l'url affichée dans la barre est tralala.html et la variable req ne
reçoit rien...

need help, j'y comprend plus rien !

--
http://www.welcometoparadize.com

2 réponses

Avatar
Patrick Mevzek
Le Sun, 14 Dec 2008 15:06:18 +0100, VarioFlux a écrit:
RewriteRule ^([^/]+).html$ index.php?pg=erreur-404&req=$1 [L]



Il manque le drapeau QSA, donc [L,QSA] plutôt que [L] tout court.

--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Avatar
B.M.
VarioFlux a écrit :
Hello

Y-a-t il un moyen, quand on patauge dans des url transformée grace à
mod_rewrite de voir, au bout du compte, quelle est l'url réelle à
laquelle on accède...

par exemple :

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.eexample.fr [NC]
RewriteRule (.*) http://www.example.fr/$1 [QSA,R01,L]
# récupération erreur 404
ErrorDocument 404 /erreur-404.html
# Convertion directe des pages atttendues en lien
RewriteRule ^page-1.html$ index.php?pg=page-1 [L]
RewriteRule ^page-2.html$ index.php?pg=page-2 [L]
RewriteRule ^erreur-404.html$ index.php?pg=erreur-404 [L]
# et pour les url inatendues :
RewriteRule ^([^/]+).html$ index.php?pg=erreur-404&req=$1 [L]

en envoyant tralala comme url ça arrive à l'erreur apache malgré le
errordocument et avec tralala.html j'arrive à la bonne page erreur mais
l'url affichée dans la barre est tralala.html et la variable req ne
reçoit rien...

need help, j'y comprend plus rien !




Pour comprendre ce qui se passe on peut activer l'enregistrement des
logs du mode rewrite en ajoutant ces deux lignes au fichier httpd.conf
d'apache:
RewriteLog "logs/rewrite.log"
RewriteLogLevel 3

Mais attention, le fichier grossit vite !

--
B. M.