8 Jul 2014

[CakePHP2]サブディレクトリにCakePHPを配置

CakePHPをサブディレクトリで動かすのは、一工夫いるみたいですが、
cakePHPでサブディレクトリで運用する設定あたりを参考にして、.htacess ファイルに変更を加えてみましたがうまくいかず。Composerを使えて構築してるからなのかとも思ったのですが、、

とりあえずMAMPでの話。CakePHPのバージョンは2.5.2です。

cakePHPでサブディレクトリで運用する設定
http://localhost/test/
のようにtestディレクトリ下でcakeを展開したい場合
各フォルダの3つの.htacessに下記を追加
RewriteBase    /test
1./test/直下にある.htaccess
<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
   RewriteBase /test
</IfModule>
2.appディレクトリ直下の.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
    RewriteBase /test/app
</IfModule>
3.webrootディレクトリ直下の.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
 RewriteBase /test/app/webroot
</IfModule>
に加えて、
app/Config/route.phpに下の2文を加える。
        Router::connect('/test/:controller', array('action' => 'index'));
        Router::connect('/test/:controller/:action/*');
    Router::connect('/test/', array('controller' => 'pages', 'action' => 'display', 'home'));