0

我需要将一个目录以及该目录中的所有子目录和文件重定向到同一位置(根目录)。因此,任何尝试访问“旧”文件夹中的/old/old/folder/old/other-folder/xy/page.php或任何其他位置的人都应该被重定向到根域。

到目前为止,我有这个:

Redirect 301 ^/old/.*$ /

这是最好的方法,还是用它(.*)代​​替更好.*?两者有什么区别?

或者 - 我应该使用 RewriteRule 而不是上面的 Redirect 吗?如果是这样,为什么?

谢谢!

4

2 回答 2

1

Redirect指令不使用正则表达式。它将 2 个路径节点连接在一起,这并不是您想要的。您可以尝试使用该RedirectMatch指令:

RedirectMatch 301 ^/old/ /
于 2012-10-11T18:55:37.893 回答
0

你可以试试这个

RewriteEngine On
RewriteBase /
RewriteRule ^old/?(.*) /$1 [R=301,NC,L]

如果您只想将每个旧页面重定向到主页/根目录(我不确定您到底想要什么),那么您可以将 last rewriterule 替换为

RewriteRule ^old/.* / [R=301,NC,L]
于 2012-10-11T17:38:04.733 回答