web-dev-qa-db-fra.com

amp; dans les liens de sitemap, sont-ils corrects?

Question simple, je demande juste pour être sûr.

Un générateur de sitemap Google a généré un fichier sitemap.txt avec des liens écrits comme suit:

http://www.domain.com/category.htm?name=some-name&cat_id=8

est-il correct d'utiliser le & dans ces liens à la place du & ou s'agit-il simplement d'une erreur du générateur de sitemap?

Merci.

17
Marco Demaio

C'est correct. Il s'agit de l'entité HTML pour une esperluette (&]) et sa représentation en caractères appropriée dans une URL correctement codée. Les esperluettes (&) ainsi que < et > sont des caractères spéciaux XML et HTML et doivent être affichés à l'aide de leurs entités de caractères spéciaux.

11
John Conde

Votre fichier Sitemap doit être encodé en UTF-8 (vous pouvez généralement le faire lorsque vous enregistrez le fichier). Comme pour tous les fichiers XML, toutes les valeurs de données (y compris les URL) doivent utiliser des codes d'échappement d'entité pour les caractères.

Cela peut aider, http://sitemaps.org/protocol.php

6
Jeremy

Google rejette le sitemap comme cassé s'il comporte un caractère dans une URL. Il accepte quand vous remplacez par amp;

MAIS: si vous vérifiez ultérieurement la liste des erreurs d’analyse dans l’outil Google Webmasters, l’URL du fichier sitemap sera rompu, car il contient amp; au lieu de .

La solution correcte consiste donc à modifier l’URL de telle sorte qu’elle ne contienne pas. Ou signalez-le comme un bug à Google.

2
Klaus Hartnegg

Vous pouvez aussi vous convaincre en vérifiant

Vous ne pouvez pas vraiment vous disputer contre la page officielle du protocole XML Sitemaps :)

2
Tom

Le codage d'URL et le codage d'entité XML ne sont pas la même chose. Vous avez besoin du codage d'URL pour remplacer les caractères spéciaux dans les URL, tels que ceux qui ne peuvent être utilisés que pour la séparation des paramètres de requête. Le codage d'entité XML sert à coder des caractères spéciaux au format XML (également XHTML). Cela signifie que si vous avez une URL dans un fichier XML (ou XHTML) et que cette URL contient des caractères, vous devez l'encoder en une entité. Donc, dans un sitemap.xml, vous aurez des URL comme dans la question de Marco Demaio.

1
bdadam