Apache Htaccess重定向内部错误

Apache Htaccess重定向内部错误,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我需要创建一个.htaccess重定向,如果用户输入URLwww.olddomain.com/bonus将他们重定向到www.newdomain.com/bonus,并将旧域的任何其他页面或根目录重定向到www.newdomain.com 一段时间以来,我一直在使用这段代码来实现它 RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L] RedirectMatch 301 ^/ http://www.newdomain.com

我需要创建一个
.htaccess
重定向,如果用户输入URL
www.olddomain.com/bonus
将他们重定向到
www.newdomain.com/bonus
,并将旧域的任何其他页面或根目录重定向到
www.newdomain.com

一段时间以来,我一直在使用这段代码来实现它

RedirectMatch 301 ^/bonus/ http://www.newdomain.com/bonus/ [L]
RedirectMatch 301 ^/ http://www.newdomain.com/ [L]
但从上周开始,它只会导致一个内部服务器错误

我发现错误是由每行的
[L]
引起的。如果我删除它,不会出现错误,但是用户总是被重定向到
www.newdomain.com
,即使他转到
www.olddomain.com/bonus

我怎样才能解决这个问题

这些指令永远不会起作用,所以很难说为什么会突然出现错误

正如您所建议的,
[L]
标志是导致500内部服务器错误的原因。这是无效的语法-但这始终是无效的语法
RedirectMatch
是一个mod_别名指令。然而,尾随标志(如
[L]
)是一种mod_重写(即
重写规则
)功能

即使他去了
www.olddomain.com/bonus

但这些指令也不会重定向上述URL。它将只重定向
www.olddomain.com/bonus/
(带尾随斜杠)。如果需要匹配上述URL,则需要从指令中删除尾部斜杠。例如:

RedirectMatch 301 ^/bonus http://www.newdomain.com/bonus
RedirectMatch 301 ^/ http://www.newdomain.com/
RedirectMatch 301 ^/bonus http://www.newdomain.com/bonus
RedirectMatch 301 ^/ http://www.newdomain.com/