2012-03-26 3 views
0

に私は/var/www/html/、同じディレクトリを指すexample.orgfoo.example.orgを持っており、内部にfoo.example.orgをしたいがのみのmod_rewriteを使用して/var/www/foo/にリダイレクト。リダイレクトは内部上位ディレクトリ

これは私がこれまで持っているものですが、何の喜び:

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

これは私の10回の内部リダイレクトの制限に達しによる500Sを取得していないが、私は理由を理解していません。

答えて

0

内部リダイレクトループの理由は、唯一のRewriteCondがホスト名チェックであるためです。新しいリダイレクトのルールが解析されると、内部リダイレクトが開始された後にホスト名が変更されることはありません。これを解決するには、パスがすでに期待値に設定されているかどうかを確認するためにRewriteCondを追加します(パスが/ var/www/htmlに設定されているリクエストのみを書き換え、 。

私は、あなたのユースケースに応じて、mod_vhost_aliasを介してこのようなことをするのがよりクリーンかもしれないことを提案します。

+0

間違いなく他のオプションは、私の制限の理由を説明するために月をとります。 あなたは正しいですが、それは '/ var/www/foo/var/www/foo/var/www/foo/var/www/foo/var/www/foo /'にリダイレクトされます。 条件として何を入れるべきかについてのヒント? –

関連する問題