我example.org
和foo.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分,但我不明白为什么。
答案 0 :(得分:0)
内部重定向循环的原因是您唯一的RewriteCond是主机名检查。内部重定向后主机名不会更改,并且在解析新请求的规则时将触发唉。您可以通过添加RewriteCond来检查是否已将路径设置为期望值(即仅将路径设置为/ var / www / html的重写请求,并跳过任何其他重写 - 因为它已被重写)
我建议根据您的使用情况,通过mod_vhost_alias执行此类操作可能会更清晰。