Problème meta en double à cause du rewriting ?

WRInaute accro
Bonjour,

Il semblerait que j'ai un problème de rewriting au niveau de mon serveur. J'utilise le caractère + dans le rewriting, ce qui donne une url du genre :

*www.monsite.com/dossiers/dossier_1050_ceci+est+mon+url.html

hors dans Google webmaster tools, celui-ci m'annonce des Metat et title en double, et en y regardant de plus près, je me retrouve avec un référencement de page en double. La même page est aussi référencée comme suit :

*www.monsite.com/dossiers/dossier_1050_ceci%2Best%2Bmon%2Burl.html

Comble du comble, parfois et ce n'est pas systématique, je me retrouve avec des espaces

*www.monsite.com/dossiers/dossier_1050_ceci est mon url.html

Je ne sais pas si ça vient directement du serveur ou bien parce qu'un site qui reprend nos flux RSS transforme l'url, mais je en sais surtout pas comment régler ce problème.

A savoir que si vous tapez *www.monsite.com/dossiers/dossier_1050_test.html ça permet de lire la page.
 
WRInaute accro
Un "+" dans l'URL c'est un espace et "%2B" aussi. Aucun des 2 est user friendly. Corrige ton script pour que le REQUEST_URI soit bien celui voulu, sinon 301.
 
WRInaute accro
Chaque page ne px être accessible que par une seule URL, donc fait en sorte de détecter quand le slug/permalink n'est pas bon, si c'est le cas: faire une redirection 301 vers la bonne URL.
 
WRInaute accro
Il n'y a que dans le code du site/CMS que tu peux checker si le slug/permalink est le bon.
 
WRInaute accro
Je sais pas si ça aide beaucoup :

Fonction url Friendly :
Code:
if (!function_exists('fonct_urlfriendly')) {
   function fonct_urlfriendly($nom_titre) {
      $urlfriendly = strip_tags($nom_titre);
      $urlfriendly = strtr($urlfriendly, "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýýþÿ", "aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuuyyby");
      $urlfriendly = strtolower($urlfriendly);
      $caract = array(".", "^Ò", ":", ";", ",", "'", "//", "/", "(", ")", "&", "!", "?", " de ", " a ", " l ", " d ", " en ", " du ", " au ", " la ", " le ", " les ", " un ", " une ", " et ", "  ");
      $carctsupp = array("", "", "", "", "", " ", "", " ", "", "", "", "", "", " ", " ",  " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ");
      $urlfriendly = str_replace( $caract, $carctsupp, $urlfriendly );
      $urlfriendly = htmlentities (urlencode ($urlfriendly));
      return $urlfriendly;
   }
}

Dans le code des dossiers :

Code:
//url friendly
if ($friendly) {
 $urlfriendly = fonct_urlfriendly($page->titreDossier);

        $valurl="dossier_suite_".$page->id_dossier."_".$page->id_parentdos."_".$urlfriendly.".html";
}

et le .htaccess :

Code:
RewriteEngine on

RewriteRule ^dossier_([0-9]+)_(.*).html$ dossiers.php?id_dossier=$1 [L]
 
Discussions similaires
Haut