301重定向的顺序?

时间:2014-07-15 13:33:33

标签: .htaccess mod-rewrite redirect

我很好奇是否有人可以教育我更好地理解为什么以下根据订单不起作用。

当我首先进行/ contact的重定向时,位置页面无法正确重定向。

Redirect 301 /contact http://www.example.com/contact-us

Redirect 301 /index.php/contact/location1 http://www.example.com/contact-us/location1

Redirect 301 /index.php/contact/location2 http://www.example.com/contact-us/location1

当我在位置之后拥有它时,它们正常工作。这是为什么?

Redirect 301 /index.php/contact/location1 http://www.example.com/contact-us/location1

Redirect 301 /index.php/contact/location2 http://www.example.com/contact-us/location1

Redirect 301 /contact http://www.example.com/contact-us

1 个答案:

答案 0 :(得分:1)

这是因为其他2个网址中也包含/contact

最好使用能够使用正则表达式的RedirectMatch指令,以便您可以准确匹配所需的内容。

使用RedirectMatch指令也可以:

RedirectMatch 301 ^/contact/?$ http://www.example.com/contact-us

RedirectMatch 301 ^/index\.php/contact/location1/?$ http://www.example.com/contact-us/location1

RedirectMatch 301 ^/index\.php/contact/location2/?$ http://www.example.com/contact-us/location1