我已经为一个客户端创建了新的网站,现在我正在.htaccess文件中执行所有重定向。对于下面几行中的源url部分,我有点困惑。
这两条线是同一条吗?
Redirect 301 /shop/contact-us http://www.example.com/contact-us/
Redirect 301 /shop/contact-us/ http://www.example.com/contact-us/
最佳答案
如果要使用许多可选的尾部斜杠将/shop/contact-us
重定向到http://www.example.com/contact-us
,则Redirect
指令不太合适。改为使用RedirectMatch
指令:
RedirectMatch 301 "^/shop/(contact\-us)/?" http://www.example.com/$1/
哪里
^
是一个锚,意思是“行的开始”;/?
匹配零个或一个斜杠字符;(contact\-us)
是一个捕获组(由$1
引用)注意,正则表达式只匹配前缀,因为只使用了
^
锚。您可以使用$
(行尾)锚定使表达式更严格,例如:RedirectMatch 301 "^/shop/(contact\-us)/*$" http://www.example.com/$1/
其中
/*
表示零个或多个斜杠。关于php - .htaccess中的这两个重定向之间有什么区别,以及如何为这两个重定向编写单个重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41805755/