-Résolu- Redirection OK mais réécriture non effective

  • Auteur de la discussion Auteur de la discussion Max33
  • Date de début Date de début
M
Max33
Guest
Bonjour tout le monde,
j'ai configuré un .htaccess pour faire un url-rewriting des pages dynamiques en pages html.
La redirection marche niquel, par contre si l'on clique sur par exemple index-1.html, cela effectue bien la redirection vers index.php?url=1 mais l'url affichée après cela est.. index.php?url=1 !
J'ai regardé les posts du forum traitant de ce problème et cela viendrait apparemment des règles de redirection. J'ai regardé mon .htaccess mais je n'arrive pas à trouver l'erreur. Vous pouvez m'aider s'il vous plaît?
Merci d'avance!

Code:
Options +FollowSymlinks
RewriteEngine on

#--------------------------------------------------
# Règles de réécriture d'URL :

RedirectPermanent http://zeldasecrets.phpnet.org/blog/ http://www.max33blog.com

RewriteRule ^article-([0-9]+)\.html$ http://www.max33blog.com/blog_news.php?idnews=$1 [R=301,L]
RewriteRule ^([a-z]+).html http://www.max33blog.com/index.php?url=$1 [R=301,L]
RewriteRule ^archive-([0-9]+)-p([0-9]+).html http://www.max33blog.com/archives_n$1.php?page=$2 [R=301,L]
RewriteRule ^archives-p([0-9]+).html http://www.max33blog.com/archives_n.php?page=$1 [R=301,L]
 
WRInaute impliqué
Enlève R=301 partout. C'est ça qui fait que l'adresse est redirigée.

Ce que tu veux c'est que l'URL soit réécrite, mais de façon invisible pour les visiteurs. R=301 rend la réécriture visible.
 
M
Max33
Guest
Merci de la réponse
C'est ce que je viens d'essayer, mais en enlevant R=301 cela provoque une redirection en 302 et non plus en 301. Et même sans les R=301, le problème reste le même...

Note: donc, le RedirectPermanantly n'a pas l'air de servir à grand chose... :?
 
WRInaute impliqué
Ce .htaccess est à la racine de quel site? J'ai un gros doute tout d'un coup.

Si tu veux rediriger un site vers un autre, tu met un .htaccess à la racine du premier site. Par exemple, à la racine de -http://zeldasecrets.phpnet.org/ tu mets :

Code:
Options +FollowSymlinks
RewriteEngine on

#--------------------------------------------------
# Règles de réécriture d'URL :

RedirectPermanent /blog/ http://www.max33blog.com/

Ensuite, à la racine de -http://www.max33blog.com/ tu met un autre .htaccess :

Code:
Options +FollowSymlinks
RewriteEngine on

#--------------------------------------------------
# Règles de réécriture d'URL :

RewriteRule ^article-([0-9]+)\.html$ /blog_news.php?idnews=$1 [L]
RewriteRule ^([a-z]+).html /index.php?url=$1 [L]
RewriteRule ^archive-([0-9]+)-p([0-9]+).html /archives_n$1.php?page=$2 [L]
RewriteRule ^archives-p([0-9]+).html /archives_n.php?page=$1 [L]

Enfin, si j'ai bien compris ton besoin.
 
WRInaute discret
Pour moi la grande différence entre ré-écriture et redirection c'est le "http://" dans les adresses cibles. Avec, ça fait un redirection (avec changement d'adresse dans la barre du navigateur). Sans, ça fait une ré-écriture interne invisible de l'extérieur.

Enfin, c'est ce que j'avais cru comprendre. Mais j'ai jamais lu ça nul part.
 
M
Max33
Guest
Super Vap, j'ai essayé ta méthode et ça marche niquel, tout en restant dans une redirection permanente en 301. Merci beaucoup!
 
WRInaute impliqué
Ah, tant mieux, je n'étais pas sûr d'avoir bien compris ton problème.

Au passage, le premier .htaccess peut être simplifié (pas besoin de RewriteEngine). Il suffit de mettre:

Code:
RedirectPermanent /blog/ http://www.max33blog.com/

Enfin je crois.
 
Discussions similaires
Haut