CodeIgniterでURLからindex.phpを除去する方法
PHPのフレームワークCodeIgniterを利用した場合、初期状態ではURLアクセス時に「index.php」を含む必要があります。
example.com/index.php/news/article/my_article
除外ルールを記述した「.htaccess」ファイルを配置することで、この「index.php」を省略してアクセスすることができます。
.htaccess記述例
index.phpを除外するには、以下のような記述をした「.htaccess」ファイルを配置します。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
この例では、index.php、images、および robots.txt 以外のあらゆるHTTPリクエストを、index.php ファイルへのリクエストとして取り扱います。
index.phpがルートディレクトリ直下ではない場合
なお、アクセス先のURLがサーバーのルートディレクトリ直下ではない場合もあるかと思います。
example.com/hogehoge/index.php/news/article/my_article
このような場合は「.htaccess」ファイルのRewriteRule部分に対象ディレクトリを記述することで対応可能となります。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /hogehoge/index.php/$1 [L]
コメント