さくらインターネットでのCodeigniterのURLルーティングについて
確実に需要があると信じて、ポスト。
さくらインターネットで「Codeigniter」を運用していて、mod_rewriteの設定に苦慮したことないっすか?俺、ある。さくらはファイル拡張子を勝手に補完していたり、URLのルーティングに関して癖がありまくりなんですが、最初俺もその辺りがネックなのかなあと思ってましたが、それ以上に重要なのがCodeigniterのルーティング設定。これをミスると、index.php/以下のパスが全く通らないことになってしまう。
なので、system/application/config/config.phpを、
$config['uri_protocol'] = "QUERY_STRING";
と修正してやる。すると、パスが通った!やったぞ!
何か知らないけど、$_SERVER['PATH_INFO']も$_SERVER['ORIG_PATH_INFO']も、全く機能してなかった。以上、何か問題あるかな?(適宜、$config['permitted_uri_chars']も調整してやると、良い感じになりますよ。特に、マルチバイトのクエリ投げるとき等)
mod_rewriteの方は、
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?/$1 [L]
で、今のところ問題無し(さくら特有の癖を吸収したRewriteRuleなので、注意)。