mod_rewriteで無限ループしてた
http://d.hatena.ne.jp/komamitsu/20090207/1234005767 で自宅用サーバーに書いたApacheのmod_rewriteが無限ループしていた。
実は結構前から知っていたのだけど、何となく…ねぇ…、面倒くさくて…、暑いし
そんなんじゃいかん!ビールばっか飲んで夏バテしてちゃいかん!ということで直してみることに
- 修正前
RewriteEngine On RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1] RequestHeader set X-Forwarded-User %{RU}e
RewriteRuleのところで内部サブクエリだったら強制的にスキップすれば良いかと思い、NSをつけてみたら無限ループしなくなった(適当)
- 修正後
RewriteEngine On RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1,NS] RequestHeader set X-Forwarded-User %{RU}e
試してないけどRewriteCondのところで、%{HTTP:X-Forwarded-User}とか%{ENV:RU}の有無をチェックしてもよいのかも