2011-08-16 12 views
0

奇妙なModRewrite再帰

RewriteEngine on 
RewriteRule ^(.+)$ $1a  
RewriteRule ^(.+)$ $1b 

今すぐhttp://localhost/test/xを要求するが、私は、これがなぜ起こるか私は理解していない

/test/xa/xba/xa/xbba/xa/xba/xa/xbbba/xa/xba/xa/xbba/xa/xba/xa/xbbbba/...にエラー Forbiddenを取得します私は [N]フラグなどを使わないので、mod_rewriteを再帰させる必要があります。また、それが再発したとしても、私は /test/xabababababababababa...が上記のツリーのようなパターンではないことを期待しています。

何が起こっているか教えていただけますか?

+0

奇妙:二行目にそれを追加すると、何も変わらないながら、最初の行に '' [L]を追加すると、内部サーバーエラーを与えます。 –

答えて

1

これは、mod_rewriteの動作方法です。書き換えが起こった後は、次の繰り返しになります(正確には、書き換えフラグや他の「瞬間」に依存します)。

正しい方法でルールを構築しないとループを書き直すことになりますが、Apacheはある時点で強制的に停止する必要があります。

読むために便利なリンク:またRewriteRule Last [L] flag not working?