Rewriting et redirection - juste une petite question.

  • Auteur de la discussion Auteur de la discussion psycotrop
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

Comme l'indique le titre je suis actuellement en train de gérer c'est deux là. Pour le moment seulement sur mes url statiques (je ferais le dynamique par mot clé dans un second temps), mais je bute sur une petite chose.

Dans mon htaccess j'utilise comme règle simple pour n'avoir plus que des url en .html réécrite :

Code:
RewriteRule ^condition-generales-d-utilisation\.html$  /cgu.php [R=301,L]

Mais le problème c'est que la redirection marche dans le sens inverse et redirige vers le .php et pas vers le .html ...

Je pense que mon erreur doit se trouver dans le [R=301,L] mais je n'arrive pas à trouver où exactement.


D'avance merci
 
Nouveau WRInaute
Bonjour tanaka,


tanaka a dit:
RewriteRule ^condition-generales-d-utilisation\.html$ /cgu.php [QSA,L]

Là je n'ai plus de redirection ni dans un sens ni dans l'autre

Edit : Après recherche QSA ne sert que pour le passage de paramètres en GET, ici pas besoin :)
 
Nouveau WRInaute
Bonjour tryan,


Comme ma règle, pas de redirection si appel de la page -cgu.php-

Redirection si appel -condition-generales-d-utilisation.html - vers -cgu.php -.

Toujours l'inverse de l'effet recherché
 
WRInaute passionné
Heuuu, ce n'est pas l'effet recherché justement redirigé "condition-generales-d-utilisation.html" vers cgu.php ?? Si c'est l'inverse que tu veux, tu alternes tes 2 urls.
 
Nouveau WRInaute
@ Tanaka: Les deux en même temps si possible

@Tryan: Non, l'inverse, je voudrais que cgu.php n'apparaisse plus afin de n'avoir plus que des url propres
 
Nouveau WRInaute
Je ne comprends pas bien ton besoin, une réécriture sert à simplifier les urls du genre utiliser "condition-generales-d-utilisation.html" à la place de cgu.php et une redirection 301 sert à rediriger une url vers une nouvelle donc si je comprends bien tu souhaites :

- réécrire "cgu.php" en "condition-generales-d-utilisation.html" pour que les internautes accèdent à ta page via l'url "condition-generales-d-utilisation.html"

- faire une redirection 301 depuis "cgu.php" vers "condition-generales-d-utilisation.html" pour que les internautes qui accèdent à ta page via "cgu.php" soient redirigés en 301 sur la page "condition-generales-d-utilisation.html"

Si c'est bien ton besoin ta demande "se mord un peu la queue" si tu me permets l'expression, je penses qu'une simple réécriture doit suffire à pallier ton problème.
 
Nouveau WRInaute
Sauf que si j'ai bien tout compris à l’indexation de Google, il y aura dans ce cas deux URL pour une seule page et donc duplication de contenu. C'est ce que je veux éviter, d'où la redirection.

Exactement comme quand on évite d'avoir d'accessible : http://www.monsite.com/ et http://monsite.com/

Mais si je me trompe, n'hésitez pas à me l'indiquer :)
 
WRInaute passionné
Si tu supprimes une page de ton serveur pour la remplacer par une autre :
Code:
RedirectPermanent /cgu.php http://ton-site.fr/condition-generales-d-utilisation.html
..et tu supprimes cgu.php

Ou tu conserves cgu.php et tu fais de la ré écriture :
Code:
RewriteRule ^condition-generales-d-utilisation\.html$  cgu.php [L,R=301]
..en conservant cgu.php

C'est à confirmer, je ne suis pas un expert en la matière :wink:
 
Nouveau WRInaute
Ok je note.

Je suis têtu ^^, je vais quand même, essayez de gratter, un peu plus voir si je ne trouve pas une alternative.

En tout cas merci bien pour votre aide à tous les deux :)

Et si d'autres ont des idées dans mon sens, qu'ils ne se privent pas pour nous en faire part ! :mrgreen:
 
Nouveau WRInaute
En fait il me faudrait ça :

Code:
RewriteRule ^condition-generales-d-utilisation\.html$  /cgu.php [L]
RedirectPermanent /cgu.php http://www.monsite.com/condition-generales-d-utilisation.html

Le problème c'est que cela créer apparemment une boucle infinie...
 
WRInaute passionné
Comme tu ré écris cgu.php, ça signifie que le fichier existe sur le serveur, tente alors une redirection par header directement dans ton fichier en plus du rewriting du style :
Code:
if($_SERVER['REQUEST_URI']=="/cgu.php"){
	header("Status : 301 Moved Permanently");
	header('location:/condition-generales-d-utilisation.html');
	exit();
}
Note : Non testé!
 
Discussions similaires
Haut