删除.htaccess 301 RedirectMatch尾部斜杠?

时间:2016-05-11 20:09:05

标签: .htaccess redirect

我有一个redirectMatch规则:

RedirectMatch 301 /dir/subdir/safety-program(.*) /dir/subdir/safety-program/$1

当我加载安全程序地址时,如下所示:

http://localhost/dir/subdir/saftey-program/

http://localhost/dir/subdir/saftey-program

我使用以下地址返回安全程序页面,并带有一个额外的斜杠:

http://localhost/dir/subdir/safety-program//

为什么匹配添加第二个斜杠?如何删除它?

1 个答案:

答案 0 :(得分:0)

问题出在safety-program/$1,它应该像safety-program$1

一样
  

为什么要改变它

RedirectMatch就像这样

RedirectMatch [status] regex URL

所以[status]是:301regex是:/dir/subdir/safety-program(.*)然后有一个url/dir/subdir/safety-program/$1这部分,$1url(.*)的{​​{1}}匹配,因此您在此regex中添加斜杠,然后(.*)像这个url包括斜杠,你在$1中表达了/$1,这就是为什么会出现双斜线的原因。

这就是你所做的。

每当请求url时,/dir/subdir/safety-program/

所以将行代码更改为:

/dir/subdir/safety-program//

或者这个:

RedirectMatch 301 /dir/subdir/safety-program(.*) /dir/subdir/safety-program$1