CakePHP3のmod_rewrite設定

.htaccessを使わないURLリライティング

httpd.confの記述方法

XAMPPの場合は、httpd-vhosts.confというファイルがあるので、このファイルにCakePHP3サイト用の設定を記述します。

<VirtualHost *:80>
    ServerName cakephp.local
    DocumentRoot "C:/xampp/htdocs/vhost/my_app_name/webroot"
    DirectoryIndex index.php index.html

    <Directory "C:/xampp/htdocs/vhost/my_app_name/webroot">

        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </IfModule>

        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

実際の記述は上のようにしました。

AllowOverride noneで.htaccessを読まないようにしています。

フォルダ階層

上のconfに対応したフォルダ階層が以下の画像です。

cakephp3-url-rewriting

以上、.htaccessを利用せずにCakePHP3を利用する設定でした。