web-dev-qa-db-fra.com

La liaison canonique spécifiée pointe sur une page différente

J'essaie de faire du référencement sur mon site Web, j'utilise les outils Google Webmaster, mais je reçois cette erreur tout le temps:

La liaison canonique spécifiée pointe sur une page différente

J'ai déjà ajouté la ligne de code suivante dans l'en-tête d'un fichier global:

<link rel="canonical" href="<? php echo DEFAULT_CANONICAL; ?>" >

J'ai également ajouté une redirection de 301 à mon domaine actuel dans mon .htaccess, j'ai tout essayé, mais l'erreur continue d'apparaître.

La valeur default_canonical est https://domain_of_my_website/.$_SERVER['REQUEST_URI'])

Que puis-je faire dans ce cas?

2
danhergir
<link rel="canonical" href="<? php echo DEFAULT_CANONICAL; ?>" >

Il y a une erreur dans la balise d'ouverture PHP qui aboutira à cette erreur et sans aucun retour d'information aux commentaires, nous ne pouvons que supposer que cela soit écrit dans votre code actuel - pas simplement une faute de frappe dans votre question?

L'erreur espace In <? php (Il devrait être <?php) Ne parviendrez pas à obtenir le code PHP interprété comme PHP et sera envoyé au navigateur comme écrit - comme HTML malformé! Si tel est le cas, "la liaison canonique spécifiée" "" pointe-t-elle bien ", il ne pointera aucune page valide!

Vous devez supprimer l'Erroneous Espace Dans l'étiquette d'ouverture PHP ou utilisez des balises d'écho courte à la place (pour ce type de Templing):

<link rel="canonical" href="<?=DEFAULT_CANONICAL?>" >

La valeur de défaut_canonical est https://domain_of_my_website/.$_SERVER['REQUEST_URI'])

Toutefois, comme indiqué dans les commentaires, vous ne pouvez pas construire de manière fiable l'URL canonique en utilisant simplement une variable $_SERVER['REQUEST_URI'] De PHP sans analyse supplémentaire. Cette variable contient des paramètres de chaîne de requête pouvant être manipulés par l'utilisateur - Modification de l'URL canonique dans le HTML et potentiellement rendre votre site vulnérable aux attaques XSS.

1
MrWhite