Problème R=301 et URL affichée

Nouveau WRInaute
Bonjour,
j'ai un soucis de réécriture d'url.

Les règles fonctionnent correctement mais lorsque j'ajoute l'option de redirection (R=301) , les urls dans mon navigateur s'affichent à l'ancienne (page=xxx) et non réécrites.
J'aimerais simplement savoir pourquoi cela fait ca ?

Exemple simple :

Code:
RewriteRule ^professionnels-immobilier-([^/]*).html  /index.php?page=$1 [L]
==> fonctionne + la nouvelle url s'affiche dans mon navigateur (professionnels-immobilier-xxxx.html


Code:
RewriteRule ^professionnels-immobilier-([^/]*).html  /index.php?page=$1 [L,R=301]
==> fonctionne MAIS Ancienne url dans mon navigateur (index.php?page=xxx)

Merci d'avance
 
WRInaute accro
Tu ne peux pas mettre dans une seule règle à la fois de la réécriture ET de la redirection 301.
Il te faudra faire 2 règles.
 
Nouveau WRInaute
Kmacleod, pareil.

nickargall, peux tu me donner des précisions stp ?

J'effectue ma réécriture ...
RewriteRule ^professionnels-immobilier-([^/]*).html /index.php?page=$1 [L]

... et ensuite je fais une redirection 301 ?
Code:
 RewriteRule ^professionnels-immobilier-([^/]*).html  /index.php?page=$1 [R=301]

?
Merci d'avance.
 
WRInaute accro
Oui, sauf que la deuxième tu la mets dans l'autre sens:

Code:
RewriteRule ^/index.php?page=([^/]*) professionnels-immobilier-$1.html   [R=301,L]

Pas sur de ma règle mais le principe est là.
 
Nouveau WRInaute
Merci, effectivement desormais l'url affichée dans le navigateur est bien la nouvelle.
La réécriture fonctionne mais le header renvoyé est celui ci :

Que je lance une reqûete sur "index.php?page=xxx" ou "professionnels-immobilier-xxx.html" même header :

Code:
"Date: Mon, 12 Nov 2007 13:42:42 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-22
X-Powered-By: PHP/4.3.10-22
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=15, max=81
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

200 OK"
(issue des infos données par firefox)

Si je ne m'abuse la redirection 301 n'a pas été effectué ?
 
WRInaute occasionnel
Si l'en-tête renvoie 200 au lieu de 301 avec l'URL vers laquelle on est redirigé, c'est qu'il n'y a pas de redirection.

Soit dit en passant, as-tu essayé tes anciennes URLs avec l'outil de WRI ? :wink:
 
Nouveau WRInaute
Code 200 également...

Je ne comprend pas pourquoi ca ne veut pas rediriger.

Quelqu'un aurait il un exemple simple d'une page réécrite mais également "redirigée 301" ?

Je veux simplement que mes anciennes pages en page=xxx soient réécrites et que ces anciens liens soient redirigées sur les nouveaux..

je n'y parvient pas.

Merci
 
Discussions similaires
Haut