Apache,プロキシ越しのDigest認証に失敗する件とださい解決方法
固定IPのレンタルサーバ(さくら)越しにIP可変の自宅サーバーへ透過的にHTTPアクセスしたい。
mod_rewriteを使用して、.htaccessに
RewriteCond %{REQUEST_URI} ^/home-server/(.*)$ RewriteRule .* http://(自宅サーバのIP)/%1 [L,P]
みたいな設定すればだいたいうまくいく。がdigest認証が通らないという罠が。
ダイジェスト認証はパスの情報もダイジェスト生成に使用してる。ブラウザ側から見ると/home-server/need-authなのが自宅サーバ側から見ると/need-authになっててパス一致せずエラー。
プロクシサーバか目的サーバでURLの変換を行う必要があるのだが、そのやりかたがわからず。
ださい解決方法
認証対象URLの「ブラウザ上から見たパス」と「実際のパス」を一致させればよい。
先程の例だと
RewriteCond %{REQUEST_URI} ^/need-auth/(.*)$ RewriteRule .* http://(自宅サーバのIP)/need-auth/%1 [L,P]
まー実用上困らないからこれでいいか。
ほんとはプロクシサーバ側でヘッダを書き換えるのがスマートだと思うんだけど、どうすりゃいいんですかね。