使用.htaccess从URL中删除特殊字符

时间:2010-06-09 19:21:49

标签: windows apache .htaccess

我正在尝试在我的网站上使用网址,例如example.com/@lorem-ipsum-dolor而非example.com/tag/lorem-ipsum-dolor形式。

它在我的本地和远程服务器上工作,但如果网址包含" : \ * |等字符,则它无法在本地服务器上运行(Win XP)。

  1. 有没有解决方案?
  2. 如果没有,那么我想我需要从本地服务器上的url中删除那些字符。我搜索了很多,但没有正确的结果。
  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这些字符在网址中不允许 。这非常重要:您的网址验证失败,可能会导致技术问题,因为@:等字符会在有效网址的其他地方使用。

RFC 2396this SO question

  

许多URI包含由某些组成或由其分隔的组件      特殊字符。这些字符称为“保留”,因为      它们在URI组件中的使用仅限于它们的保留      目的。如果URI组件的数据与      保留的目的,然后必须转义冲突的数据      形成URI。

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