我需要重定向一些带或不带尾部斜杠的链接:
www.domain.con/foo
→ www.domain.com/redirect
(工作)
www.domain.com/foo/
→ www.domain.com/redirect
(不工作)
我尝试过这个规则.htaccess
:
RewriteRule (.*)/foo/$ http://www.domain.com/redirect$1 [L,R=301]
答案1
要重定向www.domain.com/foo
或 ,www.domain.com/foo/
您www.domain.com/redirect
需要使尾部斜杠上的匹配可选并带有问号 ( /?
):
RewriteRule ^foo/?$ http://www.domain.com/redirect [L,R=301]
答案2
RewriteRule ^foo/?$ http://www.domain.com/redirect [L,R=301]
这是一个正确的解决方案,但不会将变量传递过来,只是逐页传递。如果您遇到缓存问题,我建议使用https://httpstatus.io/验证重定向,因为它似乎没有缓存任何重定向信息。此外,使用 302 而不是 301 进行测试将使浏览器不会顽固地放弃缓存的页面位置。