将两个mod重写htaccess规则合二为一

时间:2014-09-25 11:22:44

标签: apache .htaccess mod-rewrite

如何使用OR将这两个htaccess mod_rewrite规则合并为一个。

RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE]

RewriteCond %{QUERY_STRING} ^(.*)%2B(.*)$
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE]

这是怎么回事?

RewriteCond %{QUERY_STRING} ^(.*)%20(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)%2B(.*)$
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE]

还是有更短的路?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式替换:

RewriteCond %{QUERY_STRING} ^(.*)(?:%20|%2B|\s)(.*)$
RewriteRule ^(.*)$ /$1?%1+%2 [L,R=301,NE]