.htaccess RewriteRule 将所有内容重定向到根目录

.htaccess RewriteRule 将所有内容重定向到根目录

我想使用 .htaccess 文件中的 RewriteRules 将每个请求重定向到 root(稍后我会将它们复制到 vhost 文件)。我尝试了以下方法:

RewriteRule ^(.*)$ http://test.example.com/ [R=301,L]

这有效,但显然会产生无限循环。我想我需要一个排除根的 RewriteCond。所以我尝试了类似这样的方法:

RewriteCond %{REQUEST_URI} !^/
RewriteRule ^(.*)$ http://test.example.com/ [R=301,L]

但遗憾的是,这似乎不起作用。我已经搜索了一段时间,但我只遇到了删除或添加每个 URL 斜线的 RewriteRules(我不想要)。非常感谢您的帮助。

我在 Linux 机器上使用 Apache2 + mod_rewrite。

答案1

我想这可能更像是 serverfault 的问题。根只是一个 /。所以你必须告诉它以 / 开头^/,并且它紧随其后结束,所以你必须添加一个 $,从而引出下一行。

RewriteCond %{REQUEST_URI} !^/$

相关内容