読者です 読者をやめる 読者になる 読者になる

mod_rewriteで無限ループしてた

apache

http://d.hatena.ne.jp/komamitsu/20090207/1234005767 で自宅用サーバーに書いたApachemod_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}の有無をチェックしてもよいのかも