cakephpの中で普通のPHPファイルを動かしたかったんだよぉ。
通常だとcakephp内に取り込まれて、当然のようにエラーがでる。
普通のPHPファイルをいかに”フツウニ”動かすかが知りたかった。
試行錯誤のすえできたので備忘録。動いたけど、正しいかどうかはわかりませんのでご注意を。
検索で探しあてたのはこちら「mod_rewrite アイデア〔cake以外のファイルと共存〕」。
おぉやっぱりできるんだね。そうそうmod_rewriteがかかっているからできないんですよね。
普通はサブディレクトリなんかにソフトをインストールして動かないってところで悩むのでしょうか。
だけど、このままコピペしてTOPの.htaccessに貼るものの状況変わらず...orz
やっぱりそんなにうまくはいかないか。
ということで元になっている英語版「Take over the “control” of some urls from CakePHP」を読んでみると、「the .htaccess file in app/webroot.」とあるので扱うのはapp/webrootの.htaccessなのか?
そっちに
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/stats/(.*)$
RewriteRule ^.*$ - [L]
# Begin CakePHP
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
をコピペ。。。。けど、やっぱだめ...orz
ということで、ちゃんと頭を使うことに。やっぱ単にコピペとかだめだw
内容を見てみると、4行目「RewriteCond %{REQUEST_URI} ^/stats/(.*)$」は「The added rule is rather simple: if the url starts with /stats stop the interpretation of the .htaccess file. That’s it.」らしいので、/stats以下のファイルはcakephpじゃなく処理ってことか。
おーそりゃだめなわけだ。statsなんてないし。
ということでstatsの部分を自分のファイル名に変更。
あぐぅ、まだだめかー。
待てよ待てよ、やっぱりapp/webrootの.htaccessじゃない気がしてきた。だって/(TOP直下)においているファイルを動かしたいから。
という想像のもとにTOPの.htaccessをいじる。元は
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
なので、その前の部分に追加して、
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/動かしたいファイル名
RewriteRule ^.*$ - [L]
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
にしてみたところ、OK。
長かったな。というか最初から意味を理解してやらないとだめですねー。反省。
けどそのまま行けたらそれが一番楽だもん!