2010-06-09 172 views
2

我試圖在我的網站上使用像example.com/@lorem-ipsum-dolor而不是example.com/tag/lorem-ipsum-dolor窗體的網址。從URL中刪除特殊字符.htaccess

它在我的本地和遠程服務器上工作,但如果網址包含" : \ * |等字符,它不能在本地服務器上運行(Win XP)。

  1. 有沒有解決方法?
  2. 如果沒有,那麼我認爲我需要從本地服務器的url中刪除那些字符。我搜索了很多,但沒有正確的結果。

任何想法?

+0

他們得到您的網站或它之前然後停止? – 2010-06-09 19:26:24

回答

1

這些字符是而不是允許在URL中使用。這非常重要:您的網址將無法通過驗證,並可能導致技術問題,因爲@:等字符在有效網址的其他地方使用。經由this SO question

RFC 2396

許多URI包括由其組成或由某些特殊 字符分隔部件。這些字符被稱爲「保留」,因爲 它們在URI組件中的使用限於其保留的 目的。如果URI組件的數據與 保留的用途相沖突,則衝突數據必須在 形成URI之前轉義。

reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | 
       "$" | "," 
+0

感謝您回答Pekka。 那麼,在這種情況下是否有任何問題? 我的意思是搜索引擎問題,因爲我用301標題代碼永久移動了所有的URL(可能是數千),Google已經改變了它們。 – 2010-06-11 13:26:21

+0

@qeremy很可能是您的網址在所有主流瀏覽器中都可以使用,但我建議您長期更改它們以避免問題。 – 2010-06-11 13:27:52

+0

@qeremy我猜想,如果Google已經將它們編入索引,那麼您將不會遇到任何搜索引擎問題。 – 2010-06-11 13:33:39