& amp; nos links do sitemap, eles estão corretos?

17

Pergunta simples, estou pedindo apenas para ter certeza.

Um gerador de sitemap do Google gerou um arquivo sitemap.txt com links escritos assim:

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

é correto usar &esses links no lugar de &ou é apenas um erro cometido pelo gerador de sitemap?

Obrigado.

Marco Demaio
fonte

Respostas:

11

Está correto. É a entidade HTML de um e comercial ( &) e é a representação adequada de caracteres em um URL codificado corretamente. E comercial ( &) e bem como <e >são caracteres especiais em XML e HTML e precisam ser exibidos usando suas entidades de caracteres especiais.

John Conde
fonte
Você tem certeza de que todos os e comerciais precisam ter escape de entidade? Eu pensei que era apenas para aqueles que separam parâmetros em seqüências de caracteres de consulta. Eu sempre escapei e comercial nos nomes de arquivos ou pastas ou nos próprios parâmetros usando a porcentagem de codificação ( %26): por exemplohttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté
Não tenho certeza se a codificação percentual é válida ou não, então não posso ter certeza.
John Conde
@ Lesa - porque é um documento XML que tem que ser escapado, a menos que você use um CDATAnó (notei que bdadam disse a mesma coisa, mas muito mais cedo do que eu)
Mark Henderson
>não precisa ser estritamente codificado em XML.
MrWhite
6

Seu arquivo de Sitemap deve ser codificado em UTF-8 (geralmente você pode fazer isso quando salvar o arquivo). Como em todos os arquivos XML, quaisquer valores de dados (incluindo URLs) devem usar códigos de escape de entidade para os caracteres.

Isso pode ajudar, http://sitemaps.org/protocol.php

Jeremy
fonte
Infelizmente, este link está morto agora.
mtness
2

O Google rejeita o mapa do site como quebrado se tiver um caractere & em um URL. Aceita quando você substitui o & pelo & amp;

MAS: se você verificar mais tarde a lista de erros de rastreamento na ferramenta de webmasters do Google, ele reportará esse URL do arquivo do mapa do site como quebrado, porque contém o & amp; ao invés de &.

Portanto, a solução correta é alterar a URL para que não contenha &. Ou relate isso como bug para o Google.

Klaus Hartnegg
fonte
1

Codificação de URL e codificação de entidade XML não são as mesmas coisas. Você precisa de codificação de URL para substituir caracteres especiais em URLs, como & que pode ser usado apenas para a separação dos parâmetros de consulta. A codificação de entidade XML é para codificar caracteres especiais em XML (também XHTML). Isso significa que, se você tiver uma URL em um arquivo XML (ou XHTML), e essa URL incluir alguns caracteres &, será necessário codificá-la para o & amp ;. Portanto, em um sitemap.xml, você terá URLs como na pergunta de Marco Demaio.

bdadam
fonte