& Amp; nei link alle Sitemap, sono corretti?


17

Domanda semplice, sto chiedendo solo per essere sicuro.

Un generatore di sitemap di Google ha generato un file sitemap.txt con collegamenti scritti in questo modo:

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

è corretto utilizzare il &in questi link al posto del &o è solo un errore fatto dal generatore di sitemap?

Grazie.

Risposte:


11

È corretto. È l'entità HTML per una e commerciale ( &) ed è la rappresentazione dei caratteri corretta in un URL codificato correttamente. Le e commerciali ( &) e anche <e >sono caratteri speciali in XML e HTML e devono essere visualizzate usando le loro entità di caratteri speciali.


Sei sicuro che tutte le e commerciali debbano essere salvate dall'entità? Ho pensato che fosse solo per quei parametri di separazione nelle stringhe di query. Sono sempre sfuggito alle e commerciali nei nomi di file o cartelle o nei parametri stessi utilizzando la codifica percentuale ( %26): ad esempiohttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté,

Non sono sicuro che la codifica percentuale sia valida o meno, quindi non posso dirlo con certezza.
John Conde

@ Lèse - perché è un documento XML che deve essere evitato, a meno che tu non usi un CDATAnodo (ho appena notato che bdadam ha detto la stessa cosa, ma molto prima di me)
Mark Henderson,

>non è necessario che l'entità sia codificata in XML.
MrWhite,

6

Il tuo file Sitemap deve essere codificato UTF-8 (generalmente puoi farlo quando salvi il file). Come per tutti i file XML, tutti i valori dei dati (inclusi gli URL) devono utilizzare codici di escape dell'entità per i caratteri.

Questo può essere d'aiuto, http://sitemaps.org/protocol.php


Sfortunatamente, questo link ora è morto.
mtness


2

Google rifiuta la Sitemap come interrotta se ha un carattere & in un URL. Lo accetta quando sostituisci & con & amp;

MA: se in seguito controlli l'elenco degli errori di scansione nello strumento per i webmaster di Google, questo URL del file Sitemap verrà segnalato come non funzionante, poiché contiene & amp; invece di &.

Quindi la soluzione corretta è cambiare l'URL in modo che non contenga &. O segnala questo come bug a Google.


1

La codifica URL e la codifica di entità XML non sono le stesse cose. È necessaria la codifica URL per sostituire caratteri speciali negli URL, come & che possono essere utilizzati solo per la separazione dei parametri della query. La codifica di entità XML serve per codificare caratteri speciali in XML (anche XHTML). Ciò significa che se hai un URL in un file XML (o XHTML) e questo URL include alcuni caratteri &, devi codificarlo in entità in & amp ;. Quindi in sitemap.xml avrai URL come nella domanda di Marco Demaio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.