質問: いつもお世話になっています。 CakePHPで運営されているサイトの一部にWordpressを導入したいを思っています。 CakePHPで このようなURLで動作しているページがあるとします。 ``` Router::connect('/note/:memo_id', array('controller' => 'front_note', 'action' => 'index'), array('pass' => array('memo_id'))); ``` ここに、 というページを作り、『一番最後に「blog」と付いている場合=Wordpressページ』と判別させたいのです。 Wordpressは/webroot/wordpress/として設置済みです。 Wordpress側では、カテゴリ「memo」を作成し、スラッグを設定、パーマリンクで「/%category%/blog」とする事で対応しています。 また、設定・一般で以下のように設定しました。 Wordpressアドレス= サイトアドレス= 次にwebrootのhtaccessを以下のように追記しました。 ``` RewriteCond %{REQUEST_URI} !^/note/(.*)/blog$ ← 追記 RewriteCond %{REQUEST_URI} !^/wordpress/(.*)/blog$ ← 追記 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] ``` こうした時、 は平常通りCakePHPで作成したページが表示されるのですが、 はNotFoundになります、 は表示されます。 htaccess部分の書き方が悪いのだろうなと思い調べて試してみたのですが、巧く行きません。 大変お手数お掛け致しますが、不足部分ご教授お願いできませんでしょうか?
回答: 先に `/note/*/blog` をWordPressへルーティングすればよいでしょう。 ``` # /note/*/blog を WordPressへルーティング RewriteCond %{REQUEST_URI} ^/note/(.+)/blog(/|$) RewriteRule ^ wordpress/index.php [L] # /wordpressを除外してCakePHPへルーティング RewriteCond %{REQUEST_URI} !^/wordpress(/|$) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] ```