Il vaudrait mieux que tu trouves et corriges les liens erronés puis que tu ajoutes une balise « <link rel="canonical"… » sur les pages incriminées.

Dans ce genre de cas, faire des redirections depuis un fichier « htaccess » c'est une rustine, mais ça ne corrige pas la source du problème.
Modifié par jb_gfx (29 Jun 2013 - 15:54)
Merci, jb_gfx, pour ta réponse. Smiley smile

Il n’y a aucune raison pour que Google aille chercher //page.php au lieu de /page.php. Or il le fait, et ce bogue amène un affichage de la même page, mais, comme les chemins relatifs sont alors erronés, cela produit une page sans style et sans image et avec des liens erronés... que s'empresse alors d'aller explorer Google.

Il me faut donc remplacer « // » par « / » soit par .htaccess, soit en PHP.
Modifié par Pyanepsion (29 Jun 2013 - 15:58)
Oui j'avais vu le résultats sans CSS sur ton site.

Si Google essai de parcourir ce lien c'est qu'il existe quelques part. Mais pas forcément sur ton site, cela vient peut-être d'un lien externe (annuaire, forum ou autre).

Comme je te l'ai suggéré tu peux simplement ajouter un lien vers l'URL canonique dans la partie « head » des pages qui posent problème.

<?php if ($url == 'http://example.fr/dossier//page.php'): ?>
<link rel="canonical" href="http://example.fr/dossier/page.php">
<?php endif; ?>

Tu n'auras pas de problème de « duplicate content » ni de risque que l'URL erronée soit indexée dans Google.

Tu as beaucoup de pages qui présentent cette anomalie ?
Modifié par jb_gfx (29 Jun 2013 - 16:06)
Je n’en sais rien. J’en trouve de temps en temps depuis quelque temps lors de l’épluchage des 404 et j’en vois maintenant également depuis que j’enregistre les pages visitées par Google. Comme d’un autre côté j’ai aussi trouvé récemment de nombreuses pages farfelues dans Analytics, j’en déduis que j’ai peut-être subi un NSEO... que je veux donc raboter au plus vite.
Les canonical sont bien, mais elles ne sont apparemment pas prises en compte par tous les robots et Google lui-même déclare que ce n’est pas toujours la panacée.

J’ai donc préféré une programmation à base d’expression régulière.
<?
# Si l’URI utilise un // alors on renomme
$url=$_SERVER['REQUEST_URI'];
if (preg_match('#^/dossier//page.php$#',$url)!=false)
{
header("Status: 301 Moved Permanently", false, 301);
header("Location:  http://example.fr/dossier/page.php");
 
exit();
}
?>

Tu peux maintenant essayer et tu vérifieras que les URL de la forme page, page.htm, page.html sont également redirigées sur page.php. La page index ajoute une gestion supplémentaire.
Modifié par Pyanepsion (01 Jul 2013 - 13:31)
Pyanepsion a écrit :
Les canonical sont bien, mais elles ne sont apparemment pas prises en compte par tous les navigateurs


Je dirais même par aucun navigateur. Cette balise est destinée aux crawlers, pas aux navigateurs. Smiley cligne