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

.htaccess 重写规则以从URI中删除所有非字母数字符号,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我找不到完全相同的问题。我希望有人能帮我解决这个问题 比如说,用户输入了http://www.example.com/abc#!def,我要做的是删除${REQUEST\u URI}部分中的所有符号,然后重定向到http://www.example.com/abcdef。问题是这些符号可能出现在字符串中的任何位置,例如#ab!cdeg和abcdef!应重定向到abcdef 如果我是正确的,mod_rewrite没有字符串替换函数,因此这似乎不可能做到,但我是正确的吗?您可以在 或,但不删除任意字

我找不到完全相同的问题。我希望有人能帮我解决这个问题

比如说,用户输入了
http://www.example.com/abc#!def
,我要做的是删除
${REQUEST\u URI}
部分中的所有符号,然后重定向到
http://www.example.com/abcdef
。问题是这些符号可能出现在字符串中的任何位置,例如
#ab!cdeg
abcdef!应重定向到
abcdef


如果我是正确的,mod_rewrite没有字符串替换函数,因此这似乎不可能做到,但我是正确的吗?

您可以在 或,但不删除任意字符

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

使用标志更新


此规则删除所有非字母的字符。

我相信您是正确的-您需要将该URI传递给脚本进行进一步处理,然后将结果传递给301重定向。@MikeAnthony,等等,我认为这是可能的。我可能可以使用N标志。不我还没有测试过,但我认为它可以工作。这似乎很合乎逻辑。。。让我们看看它是否有效。嗨,谢谢你的回答。我想我可以使用N标志(参见)。我会摆弄它,让你知道。同时,如果有人已经知道它是有效的,请让我们知道。不过,用PHP做可能会更快。我听说了。htaccess很慢,如果可能的话应该避免使用它。@CookieMonster这是个好主意,我没想到。请看更新的答案。嗯,奇怪。我尝试了您的示例,也尝试了Apache文档中显示的相同示例,即ewriteRule(.*)A(.*)1B$2[N],但它们都不起作用。可能是因为我的服务器设置。。。?我使用XAMPP for Linux 1.8.1,它运行Apache 2.4.3。@CookieMonster“不工作”的确切含义是什么?重写规则在我的测试环境中运行良好。但是你当然不会明白
#
。哎呀,我犯了一个非常愚蠢的错误。。。我把它修好后,它就开始工作了!非常感谢你!!
RewriteRule (.*)[^a-zA-Z](.*) $1$2 [N]