さくらインターネットでCodeIgniterのindex.phpを消す

普通のサーバを使ってるなら
/application/config/config.php

$config['index_page'] = 'index.php';

コメントアウトして、
/.htaccess

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

とすれば良いだけなのに、さくらの共用サーバでは次のようにしないといけないようです。


/.htaccess

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ index.php?__PATH_INFO__=$1 [L,QSA]

/application/core/MY_Controller.php
のコンストラクタで

if (isset($_GET['__PATH_INFO__'])) {
	$_SERVER['PATH_INFO'] = $_GET['__PATH_INFO__'];
	unset($_GET['__PATH_INFO__']);
}

方法は何通りかあるようですが、例によって/system配下を修正しない方向のものを使ってみました。

VPSも安いことだし、乗り換えちゃうのもアリですね。