CodeIgniterのindex.phpを消す方法

公開日: : CodeIgniter

CodeIgniterはデフォルトだと、URLにindex.phpが入るようになっています。
これを削除する方法です。

やる事は

  1. .htaccessの設定
  2. application/config/config.php

です。

1. .htaccessの設定

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

はこう。
index\.php|assets|images|robots\.txt の部分はRewriteRuleの適用をしないURLを指定しています。robots\.txtの指定などがないとhttp://ci-sampleproject.com/robots.txtでアクセスされた場合、http://ci-sampleproject.com/index.php/robots.txtという解釈がされて、(多分)エラーになるのでフレームワークを通さないで出力するファイルはRewriteCondeで指定します。

application/config/config.php

config.phpの

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

この部分を

$config['index_page'] = '';

こうします。

これは、例えばプラグインなどで、index_pageの設定値をURLに使っている場合などがあるので、これを設定しないとプラグインから生成されるリンクのURLにindex.phpが入ってしまう事になるので、
空文字に設定します。

上記2つの設定をすると、URLからindex.phpを消す事ができます。

関連記事

スクリーンショット 2014-02-11 11.56.43

【CodeIgniter】ファイルアップロードの時ファイル名を設定する

ファイル名はfile_nameという値で指定します。 // controller側 $c

記事を読む

スクリーンショット 2014-02-11 11.56.43

CodeIgniterでtank_authのcaptchaが表示されない件を解決

結論、phpのgdライブラリが有効になっていないため、captchaが表示されませんでした。

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

php
【PHP】リファラーを取得する

ユーザーがどのサイトから来たのか取得したい時ありますよね。 そんな時

php
【PHP】ファイルが存在するか確認する

画像ファイルなど、ファイルの存在確認をするには、file_exists

php
【PHP】arrayの要素を消す

配列で特定のキーの要素を削除したい時は、unset関数を使います

php
【PHP】httpのステータスコードで404を返す方法

ページを表示しつつ、httpステータスは404を返したい時などあると思

php
【PHP】var_dumpで改行させてブラウザで表示したい時

プログラム中でvar_dumpする時、dumpしたものの中身が多いと大

→もっと見る

PAGE TOP ↑