例えば、以下の構成の会社サイトをCakePHPベースで構築するとする。
- / ホーム
- /products 製品紹介
- /support サポート
- /about 会社紹介
- /contact お問い合わせ
そこへ社長が「会社サイト内に社長ブログを設置したい」と言い出したとする。
- /blog 社長のブログ
カスタムでブログCMSを作る予算は無いので、じゃあWordPressを使いましょうという話になったとする。で、CakePHPにどうやってWordPressを入れ込むか、という話になる。
WordPressを配置するディレクトリ
事前準備として、まずはWordPressを配置するディレクトリを決める。CakePHPのルールではapp/webrootがホームなので、そこにWordPressを配置するのが定石かもしれない。
だけど、そうするとWordPressがCakePHPに依存しすぎる感じがする。もし将来CakePHP以外のフレームワークを使ってサイトを作り直すことがあると、WordPressを移動させる必要が出てきてしまう。CakePHPとWordPressの2つのCMSの依存関係は出来る限り低くしておきたいので、CakePHPの内部にWordPressを配置することは得策ではないように思う。
というわけで、WordPressは公開ディレクトリのホーム直下に配置することにする。こうしておけば、もしCakePHP関係のファイルを全て削除したとしても、WordPressは生き残る。
- /www
- /app
- /blog ← ここにWordPressを配置
- /lib
- /plugin
- /vendors
.htaccessの設定
あとは、ブログへのアクセスが正しくWordPressに流れるように.htaccessを設定してやればよい。
ホームディレクトリの.htaccessを見ると、全てのトラフィックはapp/webroot以下に転送されるようになっているので、blogへのトラフィックだけはblogディレクトリ以下に転送されるように、以下のように設定を追記する。
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^blog$ blog/ ← 追記 RewriteRule ^blog/(.*)$ - [L] ← 追記 RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule>
これで事前準備は完了。あとは通常通りWordPressの初期設定をすればよい。