さくらレンタルサーバーの変な癖?

投稿日:2014-09-27

先日はfgetcsvに泣かされ、今回はさくらのレンタルサーバーに泣かされ…そろそろお祓いに行きましょうか。

mod_rewriteが効かない?

FuelPHP案件の納品段階だったんですが、開発環境(ローカルサーバー)&テスト環境(さくらVPS)では問題なく動作しているルーティングが、さくらのレンタルサーバーに設置すると意図しない動作に。

具体的には/index/hoge/でController_index、action_hogeにバインドされるはずが、Controller_hoge 、Actionはnull、と。

疑うはmod_rewriteの設定。そもそも苦手なのでいろいろ調べながら試す試す。上手くいかない数時間…募るイライラ。。。
FuelPHPのInputを読み取ってみたり、環境変数の$_SERVERを見ながらリライト設定を変えてみたり。ふと気づく設定を変更しても環境変数の変化が無い…

試してみようと思い、リライト設定を全部コメントアウトしてみる…しかし何故かリライトしていやがる…

RewriteRule ^(.*)$ index.php?/$1 [L]

この設定で/index/hoge/へのアクセスの場合、index.php?/index/hoge/を期待するんだけど、どうやらさくらのレンタルサーバーの場合、index.php?/hoge/となるらしい(index.phpが存在していた時のみ??)。なんという仕様でしょう…

ということでこちらが取った強引な対応が、index.phpをindex_.phpにリネーム、リライトを

RewriteRule ^(.*)$ index_.php?/$1 [L]

に変更…これでindex_.php?/index/hoge/にリライトされることを確認。第一引数のindexに対応するindex.phpが存在しないから、こちらが設定したリライトのindex_.phpに渡してる、という流れなのでしょうか…

なかなかの困った仕様であります。


PAGE TOP