comment eviter le duplicate a cause de get non désirés.

WRInaute impliqué
Salut,

Des petits malins s'amusent a rajouter des parametres a l'url d'un de mes sites exemple

Code:
http://www.monsite.com/index.php?admin=true&user=admin&pass=admin

comme je rewrite tout et qu'au final je ne teste que les parametres dont j'ai besoin, ceux la sont ignorés et la page s'affiche normalement, mais ces parametres restent dans l'url ca risque de me faire du duplicate.

y a t'il un moyen de tester tout les parametres et si j'en trouve des qui ne sont pas prévus de faire un 301 vers vers l'url débarassée de ces parametres ?
 
WRInaute impliqué
merci pour les suggestions

je me repond aussi a moi meme, dans la nuit j'ai pondu ca ( pas encore testé y a peut etre des erreurs de syntaxe ) que pensez vous de ce principe ?

Code:
// Liste des arguments attendus par la page
$argument_attendu = array("id", "page"); 
foreach($_GET as $key=>$val) {
   // tester chaquer argument pour voir s'il ne fait pas parti des arguments attendus
   if (!in_array($key, $argument_attendu)) {
      if isset($_GET['id'] && isset($_GET['page'] {
         // on a tout de meme les bons arguments - on peut rerouter en 301
         // recuperer en BDD les infos pour reconstruire l'url rewritée ( ex : une-page-qui-est-rewritée )
         header("Status: 301 Moved Permanently", false, 301);
         header("Location: http://www.monsite.com/une-page-qui-est-rewritée-i".$_GET['id']."-p".$_GET['page'].".htm");
         exit();
      } else {
        // on a des mauvais arguments mais on a pas ceux qui sont attendus : 404 
        header ("HTTP/1.1 404 Not Found");
	include ($_SERVER["DOCUMENT_ROOT"] . "/page_introuvable_404.php");
        exit();
      }
   }
}

le principe c'est donc : si on a des arguments indesirables, soit les arguments attendus existent aussi et donc on peut reconstruire l'url rewritée de départ et faire une 301 vers celle ci, soit on a pas les arguments attendus et dans ce cas on fait une 404
 
Discussions similaires
Haut