& amp; dans les liens du plan du site, sont-ils corrects?

17

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 ceci:

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 c'est juste une erreur commise par le générateur de sitemap?

Merci.

Marco Demaio
la source

Réponses:

11

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

John Conde
la source
Êtes-vous sûr que toutes les esperluettes doivent être échappées par une entité? Je pensais que c'était uniquement pour ces paramètres de séparation dans les chaînes de requête. J'ai toujours échappé des esperluettes dans les noms de fichiers ou de dossiers ou dans les paramètres eux-mêmes en utilisant le pourcentage d'encodage ( %26): par exemplehttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté
Je ne suis pas sûr que l'encodage en pourcentage soit valide ou non, je ne peux donc pas le dire avec certitude.
John Conde
@ Lèse - parce que c'est un document XML, il doit être échappé, à moins que vous n'utilisiez un CDATAnœud (juste remarqué que bdadam a dit la même chose, mais beaucoup plus tôt que moi)
Mark Henderson
>n'ont pas strictement besoin d'être encodés en XML.
MrWhite
6

Votre fichier Sitemap doit être codé 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

Jeremy
la source
Malheureusement, ce lien est maintenant mort.
mtness
2

Google rejette le plan du site comme étant rompu s'il contient un caractère & dans une URL. Il l'accepte lorsque vous remplacez & par & amp;

MAIS: si vous vérifiez ultérieurement la liste des erreurs d'exploration dans l'outil Google pour les webmasters, il signalera que cette URL du fichier sitemap est rompue, car elle contient & amp; au lieu de &.

Ainsi, la bonne solution consiste à modifier l'URL de sorte qu'elle ne contienne pas &. Ou signalez cela comme un bug à Google.

Klaus Hartnegg
la source
1

Le codage URL et le codage d'entité XML ne sont pas les mêmes choses. Vous avez besoin du codage d'URL pour remplacer les caractères spéciaux dans les URL, tels que & 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 en XML (également XHTML). Cela signifie que si vous avez une URL dans un fichier XML (ou XHTML) et que cette URL comprend des caractères &, vous devez l'encoder en entité dans & amp ;. Ainsi, dans un sitemap.xml, vous aurez des URL comme dans la question de Marco Demaio.

bdadam
la source