atpages で CodeIgniter

今後のためにまとめておこうと思う。

Codeigniter のバージョン 2.2.0
利用サーバー atpages
サーバー番号 43
PHP のバージョン 5.3.3
MySQL のバージョン 5.1.54


.htaccess の記述 (ユーザーID が user_name の場合)

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|img|js|css|font|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /~user_name/index.php/$1 [L]
</IfModule>


application/config/routes.php の記述 (ユーザーID が user_name で、トップページ用のコントローラが welcome.php の場合)

$route['user_name'] = 'welcome/index';


各ビューで自サイト内の URL を記述する場合は以下のように記述しておくと安全 (css/style.css のリンクを生成する場合 index.php の置いてあるフォルダからの相対パス)

<?php echo base_url('css/style.css'); ?>

ただし application/config/autoload.php に以下のように記述しておく必要がある。

$autoload['helper'] = array('url');


検索してみると、 atpages では mod_rewrite が有効化されていない、という話を見かけたので、もしかしたらサーバーの番号によっては .htaccess が使えないかもしれない。

使えるかどうかを調べるには

<?php phpinfo(); ?>

を記述したファイルをアップロードして、そこにアクセスすると設定がずらっと出てくると思うので、「 mod_rewrite 」でページ内検索して、見つかれば大丈夫なはず。

単独実行するファイルとかがあれば .htaccess の RewriteCond の行に書き足してあげる。
ex) hoge.php を使う場合

RewriteCond $1 !^(hoge\.php|index\.php|img|js|css|font|robots\.txt|favicon\.ico)