PR

[CakePHP] 任意のディレクトリに設置する .htaccess

これまでサイトのトップに設置していたCakePHP。そしてこのところ多数利用しているWordPress。どちらもサイトのトップに使うことが出来る。また、CakePHPはwebrootを持っているから、この配下にWordPressを設置することもできる。これについてはこれまでも述べてきた。

さて、CakePHPの柔軟性とWordPressの使いやすいシステム。プラグインやテンプレートを自由に即座に変更できるメリットは大きい。そこで、先日、CakePHPとWordPressの連結を誰かが何か作っていないか調べたところ、「フロントエンド」と「バックエンド」という考え方を教えられた。これにははっとした。どちらかを択一的に利用することばかり考えていたように思えたからだ。

「WordPressの使いやすさ」と「CakePHPによる柔軟なシステム」。そのまま「フロントエンド」と「バックエンド」としたほうが筆者にはよさそうだ。つまり、基本にWordPress、システムにCakePHP。必要なものを必要なところに配置することがミッション達成を早くしてくれそう。

うまいことCakePHPとWordPressが連結してくれると良いのだけれど・・・例えばユーザ管理など。いくつかのサイトではWordPressのデータをCakePHPのデータベース切り替え機能を使って取得する方法も記載されていた。CakePHPからWordPressのテーマが利用出来るととても嬉しいのだけれど、WordPressのテーマファイルはプログラムになっているからMovableTypeユーザに好まれないとも聞く。MovableTypeは使ったことがないのでわからないがテーマはテーマらしい。

※CakePHPにもテーマ機能などがある。

スポンサードリンク

.htaccessの変更

変更は難しくなく、RewriteBaseにCakePHPを設置したディレクトリを記述すれば良い。ここでは/にあったCakePHPを/cakephpに移動した例を記述する。

CakePHP/.htaccess


RewriteEngine on
 RewriteBase /cakephp/

 # cakephp default
 RewriteRule    ^$ app/webroot/    [L]
 RewriteRule    (.*) app/webroot/$1 [L]


CakePHP/app/.htaccess


RewriteEngine on
 RewriteBase /cakephp/app/

 RewriteRule    ^$    webroot/    [L]
 RewriteRule    (.*) webroot/$1    [L]


CakePHP/webroot/.htaccess


RewriteEngine On
RewriteBase /cakephp/app/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]


※サイトルートに何も置かず、WordPressは/wp/に置いている。トップページにアクセスがあった場合は/wp/に転送する。将来、他にトップにしたものがあったとしてもWordPressへリンクされたアドレスは不変だ。以下はその例。必要があればCakePHPのwebrootからも/wp/などに転送するように仕掛けておくと良いかもしれない。お好みで。

.htaccess 例


RewriteEngine on
RewriteRule    ^$ wp/     [L]


参考文献

コメント