&erio; en los enlaces del mapa del sitio, ¿son correctos?

17

Pregunta simple, solo pregunto para asegurarme.

Un generador de sitemaps de Google generó un archivo sitemap.txt con enlaces escritos de esta manera:

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

¿es correcto usar el &en estos enlaces en lugar del &o es solo un error cometido por el generador de mapa del sitio?

Gracias.

Marco Demaio
fuente

Respuestas:

11

Eso es correcto. Es la entidad HTML para un ampersand ( &) y es la representación de caracteres adecuada en una URL codificada correctamente. Los símbolos ( &) y así como <y >son caracteres especiales en XML y HTML y deben mostrarse utilizando sus entidades de caracteres especiales.

John Conde
fuente
¿Estás seguro de que todos los símbolos tienen que escapar de la entidad? Pensé que era solo para esos parámetros de separación en las cadenas de consulta. Siempre he escapado a los símbolos en nombres de archivos o carpetas o en los parámetros mismos usando el porcentaje de codificación ( %26): por ejemplohttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté el
No estoy seguro de que la codificación porcentual sea válida o no, así que no puedo decir con certeza.
John Conde
@ Lèse: debido a que es un documento XML, se debe escapar, a menos que use un CDATAnodo (solo noté que bdadam dijo lo mismo, pero mucho antes que yo)
Mark Henderson
>no es estrictamente necesario que sea una entidad codificada en XML.
MrWhite
6

Su archivo de Sitemap debe estar codificado en UTF-8 (generalmente puede hacer esto cuando guarda el archivo). Al igual que con todos los archivos XML, cualquier valor de datos (incluidas las URL) debe usar códigos de escape de entidad para los caracteres.

Esto puede ayudar, http://sitemaps.org/protocol.php

Jeremy
fuente
Desafortunadamente, este enlace ahora está muerto.
mtness
2

Google rechaza el mapa del sitio como roto si tiene un carácter & en una URL. Lo acepta cuando reemplaza & con & amp;

PERO: si luego verifica la lista de errores de rastreo en la herramienta de webmasters de Google, informará que esta URL del archivo del mapa del sitio está rota, porque contiene & amp; en lugar de &.

Por lo tanto, la solución correcta es cambiar la URL de modo que no contenga &. O informe esto como error a Google.

Klaus Hartnegg
fuente
1

La codificación de URL y la codificación de entidades XML no son lo mismo. Necesita la codificación de URL para reemplazar caracteres especiales en las URL, como & que solo puede usarse para la separación de parámetros de consulta. La codificación de entidad XML es para codificar caracteres especiales en XML (también XHTML). Esto significa que si tiene una URL en un archivo XML (o XHTML) y esta URL incluye algunos caracteres &, debe codificarla en & amp ;. Entonces, en un sitemap.xml, tendrá URL como en la pregunta de Marco Demaio.

bdadam
fuente