BASIC認証のかかったココログのblogが、以前は携帯からも(BASIC認証可な端末なら)閲覧できたのに、「携帯に対応しました」とかいうニュースリリースと共に携帯から閲覧不可になってしまった。許せねえ。
仕方が無いので、apache に mod_proxy を入れて、携帯からもここを経由すればココログの特定blog をPC同等に閲覧できるようにしてみました。
ココログはどうも User-Agent ヘッダで携帯かどうかを識別してる模様なので、mod_proxy の前段で mod_perl を使ってこのヘッダを剥ぎ取ってやります。こんな感じ。
Apache/NoUserAgentProxy.pm
package Apache::NoUserAgentProxy; use strict; use Apache::Constants qw(:common); sub handler { my $r = shift; $r->header_in('User-Agent','RauruProxy/0.1'); return OK; } 1;
httpd.conf
ProxyPass /cocolog/foobar http://foobar.cocolog-nifty.com/blog ProxyPassReverse /cocolog/foobar http://foobar.cocolog-nifty.com/blog <Directory proxy:http://foobar.cocolog-nifty.com/blog*> Allow from all </Directory> <Location /cocolog/foobar> PerlHeaderParserHandler Apache::NoUserAgentProxy </Location>
よしよしこれでうまくいった… と思ったらなんかパスワードを二回聞かれるな。むー。
2007/04/11 追記:
パスワードを二回聞かれるのは、ココログがスタイルシート内で画像URIをホスト名込みで指定してたためでした。まったくろくなことをせんな…
2007/04/12 追記:
mod_proxy_html なるモジュールを使えば HTML 内の URI も書き換えられるじゃーん、と思ってやってみたんですが、これって HTML を libxml2 の SAXパーサ使ってパースして書き換えてるのね。CSS 内の画像URIは書き換えられんのか…