& amp; trong liên kết sơ đồ trang web, họ có đúng không?


17

Câu hỏi đơn giản, tôi đang hỏi chỉ để đảm bảo.

Trình tạo sơ đồ trang web của Google đã tạo ra một sitemap.txt với các liên kết được viết như thế này:

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

Có đúng không khi sử dụng &các liên kết này thay cho &hoặc đó chỉ là lỗi do trình tạo sơ đồ trang web?

Cảm ơn.

Câu trả lời:


11

Đúng rồi. Nó là thực thể HTML cho một dấu và ( &và là biểu diễn ký tự thích hợp của nó trong một URL được mã hóa chính xác. Ampersands ( &) và cũng như <>là các ký tự đặc biệt trong XML và HTML và cần được hiển thị bằng các thực thể ký tự đặc biệt của chúng.


Bạn có chắc chắn tất cả các ký hiệu phải được thoát khỏi thực thể? Tôi nghĩ rằng chỉ dành cho những tham số tách trong chuỗi truy vấn. Tôi đã luôn thoát các ký hiệu trong tên tệp hoặc thư mục hoặc trong chính các tham số bằng cách sử dụng phần trăm mã hóa ( %26): vdhttp://foo/a%26r.php?foo=1&amp;genre=r%26b
Lèse majesté

Tôi không chắc chắn về mã hóa phần trăm có hợp lệ hay không nên tôi không thể chắc chắn.
John Conde

@ Lèse - bởi vì đó là một tài liệu XML nên nó phải được thoát, trừ khi bạn sử dụng một CDATAnút (chỉ cần lưu ý rằng bdadam đã nói điều tương tự, nhưng sớm hơn tôi nhiều)
Mark Henderson

>không cần phải được mã hóa thực thể trong XML.
MrWhite

6

Tệp Sơ đồ trang web của bạn phải được mã hóa UTF-8 (bạn thường có thể làm điều này khi lưu tệp). Như với tất cả các tệp XML, mọi giá trị dữ liệu (bao gồm URL) phải sử dụng mã thoát thực thể cho các ký tự.

Điều này có thể giúp đỡ, http://sitemaps.org/protatio.php


Thật không may, liên kết này bây giờ đã chết.
mtness


2

Google từ chối sơ đồ trang web là bị hỏng nếu nó có & ký tự trong một URL. Nó chấp nhận nó khi bạn thay thế & bằng & amp;

NHƯNG: nếu sau này bạn kiểm tra danh sách các lỗi thu thập dữ liệu trong công cụ quản trị trang web của Google, nó sẽ báo cáo URL này của tệp sơ đồ trang web là bị hỏng, vì nó chứa & amp; thay vì &.

Do đó, giải pháp chính xác là thay đổi URL sao cho không chứa &. Hoặc báo cáo đây là lỗi cho Google.


1

Mã hóa URL và mã hóa thực thể XML không giống nhau. Bạn cần Mã hóa URL để thay thế các ký tự đặc biệt trong URL, chẳng hạn như & chỉ có thể được sử dụng để phân tách các tham số truy vấn. Mã hóa thực thể XML là để mã hóa các ký tự đặc biệt trong XML (cũng là XHTML). Điều này có nghĩa là, nếu bạn có một URL trong tệp XML (hoặc XHTML) và URL này bao gồm một số & ký tự, bạn phải mã hóa thực thể thành & amp;. Vì vậy, trong một sitemap.xml, bạn sẽ có các url như trong câu hỏi từ Marco Demaio.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.