我有一个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//
为什么匹配添加第二个斜杠?如何删除它?
答案 0 :(得分:0)
问题出在safety-program/$1
,它应该像safety-program$1
为什么要改变它
RedirectMatch就像这样
RedirectMatch [status] regex URL
所以[status]
是:301
而regex
是:/dir/subdir/safety-program(.*)
然后有一个url
:/dir/subdir/safety-program/$1
这部分,$1
,url
与(.*)
的{{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