2009-02-10 3 views
0

У меня есть URL, содержащий специальные символы. Например:Должен ли я кодировать специальный символ в файлах Sitemap?

http://www.example.com/bléèàû.html 

Если ввести этот URL в браузере, мой веб-сервер будет показывать правильную страницу (он может обрабатывать специальный символ).

Я просмотрел sitemaps specs, и неясно, может ли файл sitemaps содержать специальный символ. Из того, что я понимаю в протоколе, если URL-адрес работает нормально, и сервер обслуживает правильную страницу, а XML-файл кодируется в кодировке UTF-8, тогда все в порядке.

Например, эта запись является действительным запись Sitemaps:

<url> 
     <loc>http://www.example.com/bléèàû.html</loc> 
     <changefreq>weekly</changefreq> 
    </url> 

Любой может подтвердить это?

[Обновить] Причина, по которой я не хочу кодировать специальные символы, заключается в том, что я не хочу вводить повторяющиеся URL-адреса для одного и того же контента. Например

http://www.example.com/bl%C3%A9%C3%A8%C3%A0%C3%BB.html 

и

http://www.example.com/bléèàû.html 

будет служить той же странице. Я предполагаю, что Google поймает оба URL с нормальным индексированием и файлами sitemaps. К сожалению, Google имеет тенденцию понижать рейтинг страниц сайтов, у которых есть повторяющиеся URL-адреса, указывающие на одну и ту же страницу.

ответ

4

Спецификация Sitemaps не говорит. Он показывает примеры URL-адресов в различных экранированных формах, но не дает окончательного ответа, допустим ли первый пример (сырые символы). Он называет их только «URL-адресами», не ссылаясь на конкретное определение «URL» или RFC, которое бы разъясняло, имеют ли они значение USCII старой школы или IRI (которые могут содержать символы, отличные от ASCII).

Таким образом, было бы безопаснее использовать% -scape кодировки UTF-8 URL. Ссылка будет работать в глобальном масштабе и должна быть представлена ​​пользователю как символ Юникода во всех современных браузерах.

<loc>http://www.example.com/bl%C3%A9%C3%A8%C3%A0%C3%BB.html</loc> 
0

Спец говорит, что файлы Sitemap должны быть закодированы в кодировке UTF-8. Если URL-адрес правильный и используется на вашем сайте, то да включите его в свой файл Sitemap.

2

Хотя верно, что карта сайта должна кодироваться в UTF-8, это не означает, что содержащиеся в ней URL имеют доступный для них UTF-8.

URL-адреса должны быть подмножеством US-ASCII, как указано в RFC 1738. Я не верю, что ваш пример URL-адреса:

http://www.example.com/bléèàû.html 

действительны в соответствии с этой ссылкой, и вместо этого следует URL закодирован/убежали.

0

Для тех пользователей, которые не имеют возможность легко вводить специальные символы **, я предлагаю вам также принять самое близкое приближение на стороне сервера. (т. е. псевдоним или forward /bleeau.html в/bléèàû.html)

** Например, браузеры сотового телефона с ограниченными клавиатурами и лицами с разной раскладкой клавиатуры.