我需要将目录以及该目录中的所有子目录和文件重定向到同一位置(root)。因此,任何试图访问/old
,/old/folder
,/old/other-folder/xy/page.php
或“旧”文件夹中任何其他位置的人都应该重定向到根域。
到目前为止,我有这个:
Redirect 301 ^/old/.*$ /
这是最好的方法,还是使用(.*)
代替.*
会更好?这两者有什么区别?
或者 - 我应该使用RewriteRule而不是像上面那样的Redirect吗?如果是这样,为什么?
谢谢!
答案 0 :(得分:1)
Redirect
指令不使用正则表达式。它将两个路径节点连接在一起,这不是您想要的。您可以尝试使用RedirectMatch
指令:
RedirectMatch 301 ^/old/ /
答案 1 :(得分:0)
你可以试试这个
RewriteEngine On
RewriteBase /
RewriteRule ^old/?(.*) /$1 [R=301,NC,L]
如果你只是想将每个旧页面重定向到主页/ root(我不确定你想要的是什么),那么你可以用
替换最后一次重写。RewriteRule ^old/.* / [R=301,NC,L]