2009-02-10 19 views
0

我有一些URL包含特殊字符。例如:我應該在我的站點地圖中編碼特殊字符嗎?

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

如果您在瀏覽器中輸入此URL,我的Web服務器將顯示正確的頁面(它可以處理特殊字符)。

我看過sitemaps specs,並不清楚sitemaps文件是否可以包含特殊字符。根據我對協議的理解,如果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 

將成爲同一頁面。我認爲谷歌會抓住它的正常索引和網站地圖的URL。不幸的是,谷歌有一種傾向,即將具有重複URL指向同一頁面的網站的網頁排名降級。

回答

4

站點地圖規範並沒有說。它以各種轉義形式顯示了URL的示例,但沒有確切地說出第一個示例(原始字符)是否允許。它只把它們稱爲'URL',沒有提及'URL'或RFC的特定定義,它可以說明它們是指舊式ASCII URI還是IRI(可能包含非ASCII字符)。

因此,%-escape URL的UTF-8編碼是最安全的。該鏈接將在全球範圍內發揮作用,並應作爲所有現代瀏覽器中的Unicode字符呈現給用戶。

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

該規範說,站點地圖必須是UTF-8編碼。如果網址正確並在您的網站上使用,那麼請將其包含在您的站點地圖中。

0

對於那些無法輕鬆輸入特殊字符**的用戶,我建議您也接受服務器端最接近的近似值。 (即別名或轉發/bleeau.html到/bléèàû。html)

**例如具有有限鍵盤和具有不同鍵盤語言佈局的人員的手機瀏覽器。