ざ・わーるど@はてな

気が向いた時に更新する雑記です

さくらインターネットでEthnaのUrlHandlerを使う

さくらインターネットに設置したEthnaで、
最新版で追加されたUrlHandlerという機能を使おうとしたら動かない。
http://ethna.jp/ethna-document-dev_guide-urlhandler.html


30分くらいソースを追いながら試行錯誤していたら、
PATH_INFOのデータが取れていないっぽいことが判明。
さくらインターネットで、PATH_INFOのデータを取るには
$_SERVER['PATH_INFO']ではなくて$_SERVER['ORIG_PATH_INFO']じゃないとだめだった!
ということを思い出して、$_SERVER['PATH_INFO']を使っている箇所を変更したら簡単に動きました。


Ethna_Controller.phpの1100行目。
本当は直接書き換えない方がいいんだろうけど。

-$tmp_vars['__url_info__'] = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : null;
+$tmp_vars['__url_info__'] = isset($_SERVER['ORIG_PATH_INFO']) ? $_SERVER['ORIG_PATH_INFO'] : null;

ハマったけど、UrlHandlerの仕組みが理解できたからよかったかな。