我对 mod 重写规则非常非常陌生,并且遇到了我用来将以前托管在子目录中的站点重定向到新域的问题。这是我正在使用的规则:
RewriteEngine on
RewriteBase /oldsite/ #also tried this without the trailing slash
RewriteRule ^.* http://newsite.com [R=301,NC,L]
在您获得 3 层深度并在重定向的 url 中添加尾部斜杠之前,这非常有效。因此,结果如下所示:
- olddomain.com/oldsite 重定向到 newsite.com [正确]
- olddomain.com/oldsite/ 重定向到 newsite.com [正确]
- olddomain.com/oldsite/subdirectory 重定向到 newsite.com/subdirectory [正确]
- olddomain.com/oldsite/subdirectory/ 重定向到 newsite.com [不正确!]
我觉得我 99% 都在那里,但是把我的头发拉出来一点,弄清楚最后一点。知道我需要改变什么吗?
谢谢!
此外,我测试了将 .htaccess 文件放在公共 html 文件夹以及 /oldsite 文件夹中,并且站点上的其他地方没有其他 htaccess 文件。