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]