Codeigniterを利用していて、URLのindex.phpを表示しないようにする方法は、
Codeigniterのサイトでも紹介されている。
http://codeigniter.jp/user_guide_ja/general/urls.html
が、ここだけ読んでもできなくて、色々調べて結構時間かかったのでメモ。
やったことは、
・.htaccessファイルが有効になるようにApacheに設定をする。
・Codeigniterのサイトで紹介されているように、.htaccessファイルを作成する。
・.htaccessファイルが有効になるようにApacheに設定をする。
httpd.confファイルを編集します。
centos6を使っている私の環境では、「/etc/httpd/conf/httpd.conf」にありました。
httpd.conf内に、ドキュメントルート(/var/www/htmlとします)の設定がされている箇所が320行目あたりにあります。
「
AllowOverride None → AllowOverride All
に変更します。
・Codeigniterのサイトで紹介されているように、.htaccessファイルを作成する。
ドキュメントルートにサイトで紹介されているとおりに.htaccessファイルを作成します。
一応、内容を書いておくと、
1 2 3 |
RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] |
です。
以上で、OKでした。
ちなみに、.htaccessに設定している内容は、Apacheのhttpd.confの
タグ内に記述しても同じことができるらしいです。というか、できれば、
httpd.confに書いた方が良いらしいです。理由は、性能面、セキュリティ面かららしいです。
これは、Apacheのサイトに書いてありました。
運用上、Apacheの設定ファイルがいじれない(サイト側だけ会社で担当して制作しているとか)など
制限がある場合は、.htaccessを作成し、そうでない場合は、httpd.confに設定するのが良さそうです。
コメント