8795 sujets

Développement web côté serveur, CMS

Bonjour,

Voila j'essaie depuis quelque temps de mettre un URL rewriting pour un site développer en php, les lien sont a la base de la forme :

www.monsite.com/?s=page_a_afficher




J'ai en outre reussi a faire fonctionner ça et rendre le site navigable sous cette forme :

www.monsite.com/page_a_afficher.html




en utilisant un htaccess avec cet écriture

RewriteRule ^page_a_afficher.html$ ?s=page_a_afficher



Le problème est que les deux formes de lien reste affichable et que google a déjà indexé ces anciens lien et j'aimerai faire une redirection permanente mais en ajoutant une ligne de redirection entraine en une erreur 500 internal error ...
IL est très difficile de savoir si une URL est sous sa forme réécrite ou non, car php n'a pas conscience de cette information dans aucune de ses variables.

En fait, l'erreur que tu obtiens est sans doute une boucle de redirection infinie. La seule solution est de mettre une variable témoin explicite dans la redirection, p.ex. ?s=XXX&redirected=1. Tes visiteurs ne s'apercevront de rien, car chez eux l'adresse affichée restera celle réécrite.

Ensuite, en php, si redirected=1 n'est pas présent, alors c'est que tes visiteurs accèdent à l'URL sous sa forme normal, tu peux ensuite rediriger à l'URL sous sa forme réécrite.