在重写规则中从URL中删除点和括号

时间:2015-03-09 23:57:45

标签: regex apache .htaccess mod-rewrite

我有一个重写规则,我试图从URL中删除任何点和括号,我设法得到了我可以做一个或另一个的点,但似乎无法将两者结合起来。我如何编写规则,以便如果任何url有一个圆点或括号,它们会被删除?感谢。

RewriteEngine On
RewriteCond %{REQUEST_URI} [\(\)\.]+
RewriteRule ^(.*)[\(]+([^\)]*)[\)]+(.*)$ /$1$2$3 [L,R=301]

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteRule ^(.*)[().](.*)$ /$1$2 [E=DOT:Y,DPI]
RewriteCond %{ENV:DOT} Y
RewriteRule ^([^().]+)$ /$1 [L,R=301]

这使用环境变量作为了解何时重定向的方法。将删除任意数量的括号和圆点,当它们全部完成后,URL将被重定向。