CakePHP は大変良く出来ていて、既存のサイトにすんなり導入することができる。例えば、すでにある public_html の内容をそのまま CakePHP の webroot へ移動すればいい。何事もなかったかのようにそのまま利用できる。この方法を使えば phpMyAdmin や wordpress など複雑なものもそこに入れてしまえばいい。
しかし、内部で転送が何度も行われることになったり、実際のディレクトリと異なる場所に設置されているため、場合によっては不都合があるかもしれない。例えば wordpress を webroot に設置した場合、何もなければ / にアクセスすれば webroot の内容が出る。が、内容によっては /app/webroot/ と表示されてしまうことがある。また、未検証だが次回以降もログイン状態を保持する cookie が保存できないのもこれに関連があるのかもしれない。もちろん、普通に利用する分には何ら問題はない。
スポンサードリンク
通常は素直に webroot に置くとして、 理由があって CakePHP の .htaccess による mod_rewrite を回避するためには以下のようにする。なお、ここでは /app と同列に別のシステムを置くものとする( = /app, /blog など)
<IfModule mod_rewrite.c> RewriteEngine on # type A RewriteCond %{REQUEST_URI} ^/blog/(.*)$ RewriteRule ^.*$ - [L] # type B #RewriteRule blog/(.*) blog/$1 [L] # cakephp default RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
参考文献
- “mod_rewrite アイデア〔cake以外のファイルと共存〕” フォーラム – CakePHP Users in Japan :
CakePHP - Build fast, grow solid | PHPフレームワークCakePHP is an open-source web, rapid development framework that makes building web applications simpler, faster and requ...
コメント