4

我有一些包含特殊字符的 URL。例如:

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

如果您在浏览器中键入此 URL,我的 Web 服务器将显示正确的页面(它可以处理特殊字符)。

我查看了站点地图规范,不清楚站点地图文件是否可以包含特殊字符。根据我对协议的理解,如果 URL 工作正常并且服务器提供正确的页面并且 XML 文件是 UTF-8 编码的,那么就可以了。

例如,此条目是有效的站点地图条目:

   <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。不幸的是,谷歌倾向于降低具有指向同一页面的重复 URL 的网站的页面排名。

4

4 回答 4

6

站点地图规范没有说。它显示了各种转义形式的 URL 示例,但没有明确说明第一个示例(原始字符)是否允许。它只称它们为“URL”,没有提及“URL”或 RFC 的特定定义,这将阐明它们是指老式 ASCII URI 还是 IRI(可能包含非 ASCII 字符)。

因此,对 URL 的 UTF-8 编码进行 %-escape 是最安全的。然后该链接将在全局范围内工作,并且应该在所有现代浏览器中作为 Unicode 字符呈现给用户。

<loc>http://www.example.com/bl%C3%A9%C3%A8%C3%A0%C3%BB.html</loc>
于 2009-02-10T18:53:35.793 回答
3

虽然站点地图确实必须以 UTF-8 编码,但这并不意味着其中包含的 URL 具有可供它们使用的所有 UTF-8。

URL 应该是 RFC 1738中指定的 US-ASCII 的子集。我不相信您的示例网址:

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

根据该参考是有效的,应改为 URL 编码/转义。

于 2009-02-10T18:35:24.043 回答
0

规范说站点地图必须是 UTF-8 编码的。如果 URL 正确并在您的网站上使用,那么是的,请将其包含在您的站点地图中。

于 2009-02-10T18:18:00.200 回答
0

对于那些没有能力轻松输入特殊字符**的用户,我建议你也接受服务器端最接近的近似值。(即别名或转发 /bleeau.html 到 /bléèàû.html)

** For example cell phone browsers with limited keyboards and persons with different keyboard language layouts.

于 2009-02-10T19:07:16.493 回答