2010-06-09 173 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