Aimless Blog

VPSにCodeIgniter3を入れてURLからindex.phpを除去する

Tag:
vpscodeigniterphp

CodeIgniter利用者のほとんどが要らないと思っているURLにindex.phpがついてる問題。 .htaccessだけではダメだったのでメモ。
環境はApache, CentOS 7 64Bit, PHP 7.1

.htaccess


.htaccessの設定はCodeIgniterの日本語ドキュメント と同じで

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

ドキュメントルートが/var/www/html/(CodeIgniterの)applicationではなく/var/www/html/CodeIgniter-3.1.0/application
みたいな構造の場合はRewriteBase /CodeIgniter-3.1.0/を追加しないとアクセスできないかも。

httpd.conf


CodeIgniterのindex.phpの消し方をググると出てくる.htaccessの色々な書き方を試したけどアクセスできずにいたら、

.htaccessを有効にするためには、ドキュメントルート以下でのAllowOverrideを許可する必要があります。

と書いてあるサイトを発見。
ということで、/etc/httpd/conf/httpd.conf<Directory /var/www/html/>~~</Directory> 内の AllowOverride NoneAllowOverride Allに変更。
systemctl restart httpdでApache再起動。
これでindex.phpなしのURLでアクセスできました。