重写包含双斜杠的规则不匹配

时间:2016-05-29 19:20:34

标签: regex .htaccess mod-rewrite apache2

我正在使用此重写规则来重定向我的搜索请求:
c(t(cbind(v2,matrix(v1, ncol=3, byrow=TRUE))))

此规则适用于
RewriteRule ^search/([^/\.]*)/([^/]+)/?$ index.php?search=$1&additional=$2 [L]
但如果给我一个找不到的页面 search/search/add(空搜索)

我做错了什么?正则表达式应匹配:

Regular expression visualization

Debuggex Demo

1 个答案:

答案 0 :(得分:1)

是的,你的正则表达式将匹配search//add,但问题是mod_rewrite引擎在RewriteRule指令中将多个斜杠删除为单个斜杠。

您可以改为使用RewriteCond

RewriteCond %{REQUEST_URI} ^/search/([^/.]*)/([^/]+)/?$ [NC]
RewriteRule ^ index.php?search=%1&additional=%2 [L,QSA]