質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

4508閲覧

WordpressとCakePHP3を同居させるときのhtaccessについて

euripides

総合スコア14

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2016/05/06 08:50


CakePHPにWordpressを導入したところ、
cake/Webroot/wordpress/
でトップは表示できるのですが、それ以降のサブディレクトリ
cake/Webroot/wordpress/category/
などがすべてCakephp3のディスパッチャにひっかっかってしまいます。
ディスパッチャのほうは例外処理など設定する部分ないようでした。(調べた限りでは)
2日ほど色々調べて試行錯誤して、アパッチのアクセスログを見ながらやっているのですが、
力及ばずわかりません。
詳しい方、ご教授いただけますでしょうか。
よろしくお願いいたします。


/cake/.htaccess

<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>

/cake/webroot/.htaccess

<IfModule mod_rewrite.c> RewriteEngine On #wordpressの置いてあるディレクトリ以降を対象外にする RewriteCond $1 !^/wordpress/* RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L] </IfModule>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

// 解決済みかもしれませんが
wordpress/.htaccess に以下の様なRewriteはありますでしょうか。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /cake/wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /cake/wordpress/index.php [L] </IfModule>

Wordpressのパーマネントリンクを変更した際、以下の記述を追加した時に、
Apacheに書き込み権限が無い場合、手動で追加する必要がありました。
こちらのRewriteに一致しないとwebrootのindex.phpに捕まり、Cakeのエラーが出ると思います。

投稿2016/05/18 05:33

qlbs

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず、cake/.htaccess を

<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^wordpress$ wordpress/ RewriteRule ^wordpress/(.*)$ - [L] RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>

で、どうでしょうか。

できれば、rewrite log をとって、書いていただけると助かります。

投稿2016/05/07 04:06

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

euripides

2016/05/09 09:13

こちらでも、動作しませんでした。 rewrite log があったことを忘れていました。貼り付けます。 ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (3) [perdir /var/www/html/cake/] add path info postfix: /var/www/html/cake/wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88 -> /var/www/html/cake/wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/ ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (3) [perdir /var/www/html/cake/] strip per-dir prefix: /var/www/html/cake/wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/ -> wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/ ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (3) [perdir /var/www/html/cake/] applying pattern '^' to uri 'wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/' ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (4) [perdir /var/www/html/cake/] RewriteCond: input='/var/www/html/cake/wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88' pattern='!-f' => matched ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (4) [perdir /var/www/html/cake/] RewriteCond: input='/var/www/html/cake/wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88' pattern='!-d' => matched ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (2) [perdir /var/www/html/cake/] rewrite 'wordpress/\xe3\x82\xb5\xe3\x83\x97\xe3\x83\xaa\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/' -> 'index.php' ip.address - - [09/May/2016:17:40:26 +0900] [domain.com/sid#7f4d4c56b4c8][rid#7f4d4c9a29e8/initial] (3) [perdir /var/www/html/cake/] add per-dir prefix: index.php -> /var/www/html/cake/index.php の部分だと思うのですが、あってますでしょうか。自分でもpattern='!-d'等の部分を書き換えてみたのですが、動きません。
guest

0

これではだめですか?

/cake/webroot/.htaccess

<IfModule mod_rewrite.c> RewriteEngine On #wordpressの置いてあるディレクトリ以降を対象外にする RewriteCond $1 !^/wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^ index.php [L] </IfModule>

投稿2016/05/06 09:07

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

euripides

2016/05/06 12:23

こちらのコードでもディスパッチャに飛ばされてしまいました…。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問