2010-01-07 99 views
0

我發現這個article regarding URL Rewriting最有用。 但這裏有幾個問題。網址重寫,搜索引擎優化和編碼

我喜歡使用一個URL(重寫之前,查詢字符串裏的空格)

http://www.store.com/products.aspx?category=CD s-Dvd s 

首先,我應該替換以任何理由加號(+)的空間?像這樣:

http://www.store.com/products.aspx?category=CD+s-Dvd+s 

其次,我的母語是希臘語。我應該編碼參數嗎?一般來說,對於S.E.O.,URL編碼的結果會不同嗎?

回答

0

如果該值則需要通過不變,然後是你必須使用逃逸。在URL查詢參數值中,空格可以編碼爲+%20。只要外部版本適當拼寫,mod_rewrite通常會爲你做這件事。

在URL中的外部版本中,只有20%可以用:

http://www.store.com/products/CD%20s-Dvd%20s 
http://www.store.com/products.php?category=CD%20s-Dvd%20s 

,因爲在一個URL路徑部分+會從字面上的意思是一個加號。

(你確定你想要一個空間嗎?「的CD-DVD的」無空格似乎是一個更好的標題。)

這是不平凡的,通過從路徑部分獲得任意字符串一個參數。除了轉義問題之外,您還遇到/問題,應將其編碼爲路徑部分中的%2F。但是,由於安全原因,Apache會默認阻止任何包含%2F的URL。 (\在Windows下受到類似影響。)您可以使用AllowEncodedSlashes配置關閉此行爲,但這意味着如果您想要便攜,則不能將「CD/DVD」用作類別名稱。

由於這個原因,並且由於在你的URL中加載了一個%20 s有點難看,字符串通常在被放入一個URL之前變成'slugs',其中所有有爭議的ASCII字符將導致可見%-escapes被替換爲填充字符,例如連字符或下劃線。這意味着你不能對字符串進行往返,所以你需要在數據庫中存儲一個單獨的標題和slug,以便能夠查找給定slug的正確實體,或者只是在URL中使用額外的ID (像堆棧溢出一樣)。

0

通常的做法是用下劃線來代替空格,ALA http://www.store.com/products.aspx?category=CD_s-Dvd_s

1

其實你應該用連字符替換空格。這實際上比使用下劃線更適合搜索引擎優化。

+0

我們如何知道這一點? – 2010-03-18 15:32:41