設定CodeIgniterを含めほとんどのPHPフレームワークでは、全てのアクセスをフロントコントローラが受け持ちます。処理されるクラスやアクションメソッドが決定されます。この一連の流れを「ルーティング」と言います。CodeIgniterのデフォルトでは、index.phpにつづくパス文字列によってルーティングが行われます。例:http://your.site/index.php/[Controller]/[Action]/[Parameter1]/[Parameter2]/「Controller」は「Class」、「Action」は「method」、「Parameter」は「methodの引数データ」として処理されることになります。URIindex.phpにパスを続ける形式のURIでも、動作自体には何ら問題ありませんが、美しくありません。美しくないと言う事は「SEO」的にも良くないと言う事になります。下記のような自然なURIの方がしっくりきます。上に戻る自然なURIでCodeIgniterを動作させるには、「mod_rewrite」の力を借りることになります。当然のことながら、「mod_rewrite」が利用できる環境でなければいけません。以下が、「mod_rewrite」の最低限の設定方法です。onmod_rewriteを有効にしています。!^/index\.phpURIの書き換えルールから除外するURI文字列の設定です。[L]URIの書き換えルールの設定です。RewriteCondで指定したものを除く全てをindex.phpの後ろにつづけたURIに書き換えたものとして処理されます。上に戻る「index.php」は必ず「RewriteCond」で書き換えルールから除外する必要があります。これをしないとURIの書き換えが無限にループしてしまいます。通常は、「index.php」以外にも書き換えルールから除外する必要なものがあるでしょう。画像やJavaScriptファイル、スタイルシート等です。これらを書き換えルールから除外するには以下のようにします。[L]注:httpd.confの設定では「RewriteCond」の「^」記号と「(」の間の「/」スラッシュが必要となります。「/」が無いと「/index.php」にマッチせず無限リダイレクトとなってしまいます。この設定での「images」「javascripts」「stylesheets」はドキュメントルート配下にあるディレクトリとなります。宜、環境に合わせて設定してください。表示されると思います。出力されてしまいます。...これは、CodeIgniterのちょっとしたバグになりますが、動作には影響ありません。気になる方は下記の設定で「Warning」が出力されなくなります。