シュンカの日記

基本的に書きたいことを書いていくスタイル。

CakePHPプロジェクト作成時のhtaccessの設定方法

【スポンサーリンク】

CakePHPのプロジェクトを作成したまではいいが、htaccessの設定に不備があるようで、CSS等のファイル読込がうまくいかなかった。

不備事象

下記のように、「URL rewriting is not properly configured on your server」というエラーメッセージが表示される。CSS等のファイルも読み込まれていないようである。
f:id:nukano0522:20180328161929p:plain

環境、前提

OS:Raspbian
Webサーバー:Apache

また、ここでは、/path/toというディレクトリ配下に、appというCakePHPプロジェクトを作成した前提で話をすすめる。

対応

.htaccessを有効にする

そもそも.htaccessの読込が有効化されていなかったようなので、apacheの設定ファイルを編集する。

以下を追記する。
[apache2.conf]

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

ちなみにmod_rewrite.soの場所は予め調べておく。
f:id:nukano0522:20180331153536p:plain

.htaccessのoverrideの設定を変更

apacheの設定ファイルに下記を追記

[apache2.conf]

<Directory /path/to/app>
    Options FollowSymLinks
    AllowOverride All 
</Directory>

参考:公式サイト
https://book.cakephp.org/3.0/en/installation.html#url-rewriting

.htaccessを編集

.htaccessのファイルを編集する。
こちらも公式サイトを参考。

[/path/to/app/.htaccess]

<IfModule mod_rewrite.c>
    RewriteEngine on
    #RewriteBaseの記述を追加
    RewriteBase   /app
    RewriteRule    ^$    webroot/    [L] 
    RewriteRule    (.*)  webroot/$1    [L] 
</IfModule>

[/path/to/app/webroot/.htaccess]

<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBaseの記述を追加
    RewriteBase /app/webroot
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^ index.php [L] 
</IfModule>

参考:公式サイト
https://book.cakephp.org/3.0/enひょうじされるようになりました。ml#url-rewriting


以上、ちゃんとひょうじされるようになりました。
f:id:nukano0522:20180331155444p:plain