& amp; di tautan sitemap, apakah benar?

17

Pertanyaan sederhana, saya minta hanya untuk memastikan.

Generator Google sitemap menghasilkan fle sitemap.txt dengan tautan yang ditulis seperti ini:

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

apakah benar menggunakan &tautan ini sebagai pengganti &atau hanya kesalahan yang dibuat oleh generator sitemap?

Terima kasih.

Marco Demaio
sumber

Jawaban:

11

Itu betul. Ini adalah entitas HTML untuk ampersand ( &) dan merupakan representasi karakter yang tepat dalam URL yang disandikan dengan benar. Ampersands ( &) dan juga <dan >merupakan karakter khusus dalam XML dan HTML dan perlu ditampilkan menggunakan entitas karakter khusus mereka.

John Conde
sumber
Apakah Anda yakin semua ampersand harus lolos dari entitas? Saya pikir itu hanya untuk parameter yang memisahkan dalam string kueri. Saya selalu lolos dari ampersand dalam nama file atau folder atau dalam parameter itu sendiri menggunakan persen-encoding ( %26): misalnyahttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté
Saya tidak yakin tentang penyandian-persen valid atau tidak, jadi saya tidak bisa mengatakan dengan pasti.
John Conde
@ Lèse - karena ini adalah dokumen XML, maka ia harus diloloskan, kecuali jika Anda menggunakan CDATAsimpul (perhatikan bahwa bdadam mengatakan hal yang sama, tetapi jauh lebih awal dari saya)
Mark Henderson
>tidak benar-benar perlu entitas yang dikodekan dalam XML.
MrWhite
6

File Sitemap Anda harus dikodekan UTF-8 (Anda biasanya dapat melakukan ini saat menyimpan file). Seperti semua file XML, nilai data apa pun (termasuk URL) harus menggunakan kode pelarian entitas untuk karakter.

Ini dapat membantu, http://sitemaps.org/protocol.php

Jeremy
sumber
Sayangnya, tautan ini sekarang mati.
mtness
2

Google menolak peta situs sebagai rusak jika memiliki & karakter dalam URL. Itu menerimanya saat Anda mengganti & dengan & amp;

TETAPI: jika nanti Anda memeriksa daftar kesalahan perayapan di alat webmaster Google, itu akan melaporkan URL file sitemap ini sebagai rusak, karena mengandung & amp; dari pada &.

Dengan demikian solusi yang tepat adalah mengubah URL sedemikian rupa sehingga tidak mengandung &. Atau laporkan ini sebagai bug ke Google.

Klaus Hartnegg
sumber
1

Pengodean URL dan pengodean entitas XML bukan hal yang sama. Anda memerlukan Pengkodean URL untuk mengganti karakter khusus dalam URL, seperti & yang hanya dapat digunakan untuk pemisahan parameter kueri. Pengkodean entitas XML adalah untuk pengkodean karakter khusus dalam XML (juga XHTML). Ini berarti, jika Anda memiliki URL dalam file XML (atau XHTML), dan URL ini mencakup beberapa & karakter, Anda harus entitas menyandikannya ke & amp ;. Jadi dalam sitemap.xml Anda akan memiliki url seperti dalam pertanyaan dari Marco Demaio.

bdadam
sumber