重写规则以从URI中删除所有非字母数字符号

时间:2013-03-18 03:59:56

标签: .htaccess mod-rewrite

我在SO上找不到完全相同的问题。我希望有人可以帮我解决这个问题。

说,用户输入了http://www.example.com/abc#!def,我想要删除${REQUEST_URI}部分中的所有符号,然后重定向到http://www.example.com/abcdef。问题是这些符号可以出现在字符串中的任何地方,例如#ab!cdegabcdef#!都应重定向到abcdef

如果我是正确的,mod_rewrite没有字符串替换功能,所以这似乎无法做到,但我是否正确?

1 个答案:

答案 0 :(得分:2)

您可以在regular expressions中使用RewriteCond捕获网址的特定部分 或RewriteRule,但不删除任意字符。

此外,您永远不会在URL中看到hash character '#'及其后面的所有内容,因为客户端使用它来导航到文档的特定部分。

使用next标记

更新

RewriteRule (.*)[^a-zA-Z](.*) $1$2 [N]

此规则会删除所有不是^字母的字符。