ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

XSERVERでCodeIgniter4を動かすための.htaccessの設定方法

XSERVERでCodeIgniter4を動かそうとすると、どうもmod_rewriteが認識されていないようだったので、どこで設定するのか少しハマりました。
今後もハマらないようにメモとして記事に残しておきます。

XSERVERの仕様

XSERVERで使われているWebサーバーはNGINXですが、なぜかApache.htaccessが動作する謎仕様です。

ドメインごとにホームディレクトリが作られるので、その中の「public_html」配下がWebサイトとして動作するディレクトリになります。

XSERVERでの.htaccessの設定場所

上記仕様の通り、.htaccessは「public_html」配下に置かれたものが認識されます。
CodeIgniterにもpublicディレクトリ配下に.htaccessがありますが、こちらはなぜか認識しないので編集しても動作が変わらない点に注意してください。

FTPやファイルマネージャーから直接.htaccessを編集しても良いですが、サーバーパネルにある「.htaccess編集」から編集すると簡単に操作できます。
www.xserver.ne.jp

CodeIgniter用の.htaccess内容

以下の内容で追記してください。間違っても既存の設定を削除しないように気をつけましょう。
CodeIgniter3、4で動作確認済みです。

# mod_rewrite有効化
RewriteEngine On

# https強制
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# index.phpの置換
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]