i amp; czy w linkach do map witryn są poprawne?

17

Proste pytanie, proszę tylko się upewnić.

Generator map witryn Google wygenerował plik sitemap.txt z linkami zapisanymi w następujący sposób:

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

czy poprawne jest użycie &tych linków zamiast &czy to tylko błąd popełniany przez generator map witryn?

Dzięki.

Marco Demaio
źródło

Odpowiedzi:

11

To jest poprawne. Jest to jednostka HTML dla znaku ampersand ( &) i jest to odpowiednia reprezentacja znaku w poprawnie zakodowanym adresie URL. Ampersandy ( &), a także <i >to specjalne znaki w XML i HTML i muszą być wyświetlane przy użyciu ich specjalne jednostki znakowe.

John Conde
źródło
Czy jesteś pewien, że wszystkie znaki ampersands muszą mieć znaki ucieczki? Myślałem, że to tylko dla tych parametrów oddzielających ciągi zapytań. Zawsze uciekałem do znaków ampersands w nazwach plików lub folderów lub w samych parametrach, używając procent-kodowania ( %26): np.http://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté
Nie jestem pewien, czy kodowanie procentowe jest poprawne, czy nie, więc nie mogę powiedzieć tego na pewno.
John Conde
@ Lèse - ponieważ jest to dokument XML, należy go uciec, chyba że użyjesz CDATAwęzła (zauważyłem, że bdadam powiedział to samo, ale znacznie wcześniej niż ja)
Mark Henderson
>nie muszą być encji zakodowane w XML.
MrWhite
6

Plik mapy witryny musi być zakodowany w formacie UTF-8 (ogólnie można to zrobić po zapisaniu pliku). Podobnie jak w przypadku wszystkich plików XML, wszelkie wartości danych (w tym adresy URL) muszą używać kodów zmiany znaczenia dla znaków.

To może pomóc, http://sitemaps.org/protocol.php

Jeremy
źródło
Niestety ten link jest już nieaktualny.
mtness
2

Google odrzuca mapę witryny jako uszkodzoną, jeśli w adresie URL znajduje się znak &. Akceptuje to, gdy zamieniasz & na & amp;

ALE: jeśli później sprawdzisz listę błędów indeksowania w narzędziu Google dla webmasterów, zgłosi ten adres URL pliku mapy witryny jako uszkodzony, ponieważ zawiera & amp; zamiast &.

Dlatego poprawnym rozwiązaniem jest zmiana adresu URL tak, aby nie zawierał &. Lub zgłoś to jako błąd do Google.

Klaus Hartnegg
źródło
1

Kodowanie URL i kodowanie encji XML to nie to samo. Potrzebujesz kodowania URL, aby zastąpić znaki specjalne w adresach URL, takich jak &, których można użyć tylko do rozdzielenia parametrów zapytania. Kodowanie encji XML służy do kodowania znaków specjalnych w XML (także XHTML). Oznacza to, że jeśli masz adres URL w pliku XML (lub XHTML), a ten adres URL zawiera niektóre znaki &, musisz kodować je do & amp ;. Więc w sitemap.xml będziesz mieć adresy URL jak w pytaniu od Marco Demaio.

bdadam
źródło