我们有一大组 URL,其中一些包含哈希字符。hash并不是表示一个片段,而是 URL 路径的一部分,所以我们通过 转义 hash %23
,例如
http://example.com/example%231
http://example.com/another-example%232
…
我们sitemap.xml
将这些 URL 列出如下:
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://example.com/example%231</loc>
</url>
<url>
<loc>http://example.com/another-example%232</loc>
</url>
<!-- and so on … -->
</urlset>
现在,Google Search Console 会报告404
以下 URL 的错误:
http://example.com/example
http://example.com/another-example
请注意,%23
被剥离后的字符串。如果站点地图包含 eg ,我会理解这种行为,http://example.com/example#1
但我们有意对哈希 ( http://example.com/example%231
) 进行编码。
有什么我可能误解的地方,还是有什么特殊的规矩可以在里面逃跑sitemap.xml
?