Epécher le duplicate content après url rewrit

WRInaute discret
Salut

J'ai pour habitude, après url rewriting, d'ajouter en tête de fichier un bout de script qui vérifie que l'url est bien celle qu'ele doit être
exemple :

www.blabla.com/partir/avion/billet-avion-paris.php

je fais en sorte que si on a cette url :

www.blabla.com/partir/BATEAU/billet-avion-paris.php

alors o balance un 301 et on retombe sur le bonne page. Ca évite le même contenu sur des infinités d'url possibles (je suis pas parano, mais je me dit que si on veut m'emmerder, suffit de foutre en circulation des url divers et hop les moteurs seront pas content)

Aujourd'hui je termine un site sous spip url rewrité.
Je me demande comment faire cette vérif et ou placer le bout de code adequate.
J4ai fait quelques test, mais je passe pas ...

Une idée ou une expérience ?

Merci

B.
 
WRInaute occasionnel
Salut, je ne connais pas spip mais un bout de code qui éventuellement pourrait t'être utile est le suivant :
Code:
if ( strpos($_SERVER['REQUEST_URI'],'?')!==false )
{
	header("HTTP/1.0 404 Not Found");
};

C'est ce que je mets au tout début de mes fichiers rewrités pour générer un 404 s'il y a "?" dans l'url et ainsi éviter que quelqu'un fasse un lien vers la version non rewritée ou, plus subtile, vers la version rewritée mais en ajoutant des paramètres, genre *http://www.monsite.com/page-rewritee.html?abc. La page sera bien affichée au visiteur (donc pas de perte de trafic) mais elle ne sera pas prise en compte par les moteurs (donc pas de duplicate). Maintenant la redirection 301 c'est mieux mais je ne connais pas spip donc je ne pourrai malheureusement pas trop t'aider :(
 
WRInaute impliqué
Justement, je me suis penché sur la question aujourd'hui même suite à l'appel de page rewritées avec un parametre après le html (genre htm?p=xxxx)

j'ai donc redirigé vers une 404 si la page appelée n'est pas la page désirée.

Est-il préférable de rediriger vers la page voulue plutot qu'une 404 ?
 
WRInaute discret
J'ai toujours redirigé mes sites url rewrités avec un hedaer(location
en cas de mauvaise url. Dans le cas de spip, je viens de faire un script qui passe en force dans les .php3, avant l'include habituel.

Dans ton cas précis, a mon avis l'ajout de variables ne doit pas être préjudiciable ... sinon on en sort plus. Je pense que c'est plutot le chemin d'accès qui peut poser problème ...

B.
 
WRInaute passionné
SuperPJ a dit:
Code:
if ( strpos($_SERVER['REQUEST_URI'],'?')!==false )
{
	header("HTTP/1.0 404 Not Found");
};
Ce sujet m'interresse beaucoup et je n'arrive pas à comprendre comment ce code peut savoir si l'URL est bonne ou pas !
Si quelqu'un veut bien m'expliquer :wink:
 
WRInaute occasionnel
Salut Borower ;) ce code vérifie juste s'il y a le caractère '?' dans l'url demandée (en effet, si la page est rewritée il ne devrait pas y avoir ce caractère). Si c'est le cas, la page s'affiche normalement mais une erreur 404 est envoyée afin d'empêcher son indexation par les moteurs de recherche.

Ce code est à mettre uniquement en header des pages dont on a la certitude qu'elles sont rewritées.
Test de code d'erreur : https://www.webrankinfo.com/english/tool ... header.php

PS : Le code ne certifie pas que la page affichée est la bonne, il empêche juste l'utilisation de paramètres dans l'url.
 
WRInaute passionné
Merci de ta réponse SuperPJ

Elle est tres explicite c'est cool.
Encore merci je ne connaissais pas la formule strpos()
 
WRInaute discret
Bon, pour spip, je suis donc passé en force. J'ai fait un script que je place en tête de chaque php3 avec un include.

J'utilise les fonctions qui génère les url dans spip pour me donner l'url théorique de l'article et je la compare à l'url demandé par le navigateur.
Elles sont identiques : ras, spip poursuit
Elles sont différentes : header(location : url théorique ) + un die (on pourrait mettre un 404 aussi)

C'est surement pas le moins gourmand, mais j'ai horreur de laisser trainer un site sans ce genre de vérif, même si ca n'est que supputations sur l'utilisation maléfique qu'on peut en faire :D

Et ca evite de voir trainer des url valides de la sorte :
--www.blabla.com/le_webmaster_est_un_gros_con/article152.html

;-)

B.
 
Discussions similaires
Haut