内部重定向到更高的目录

时间:2012-03-26 13:19:18

标签: .htaccess

example.orgfoo.example.org指向同一目录/var/www/html/,并希望foo.example.org在内部重定向到/var/www/foo/,仅使用 < EM> mod_rewrite的

这是我到目前为止所做的,但没有快乐:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^foo [NC]
    RewriteRule ^(.*)$ ../foo/$1 [L]
</IfModule>

由于达到了10个内部重定向的限制,这让我获得了500分,但我不明白为什么。

1 个答案:

答案 0 :(得分:0)

内部重定向循环的原因是您唯一的RewriteCond是主机名检查。内部重定向后主机名不会更改,并且在解析新请求的规则时将触发唉。您可以通过添加RewriteCond来检查是否已将路径设置为期望值(即仅将路径设置为/ var / www / html的重写请求,并跳过任何其他重写 - 因为它已被重写)

我建议根据您的使用情况,通过mod_vhost_alias执行此类操作可能会更清晰。