スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[CakePHP] URLにwebrootを指定したときに表示される画面を変える方法

せっかくなので、昨日調べたことをまとめる。

CakePHPを使用する場合、Webサーバーではドキュメントルートを /app/webroot に設定することが多いと思う。
別にルートでなくてもよいのだが、/app/webroot に当たるURLをブラウザで開くと、以下のようなCakePHP設定チェック画面が表示される。
CakePHP設定チェック画面

これは /app/config/core.php で Configure::write('debug', 2); と設定されている場合で、
Configure::write('debug', 0); と設定されている場合は以下のような画面が表示される。
webroot指定時(debug=0)

この画面を変更する方法だが、上のCakePHP設定チェック画面に書かれているように /app/views/pages/home.ctp を作成すればよい。
デフォルトではこのディレクトリの中身はemptyなので、/cake/libs/view/pages/home.ctp が表示される。(core.phpの debug の値によって表示画面が変わるのは、この home.ctp 内で制御しているから)

以下のソースコードを /app/views/pages/home.ctp に記述すれば、index.htmlにリダイレクトされる。
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: ./index.html");

そもそもなぜルートを指定すると /cake/libs/view/pages/home.ctp が表示されるかと言うと、/app/config/routes.php で
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
と設定されているから。
そのため、これを修正して表示画面を変えることもできる。
例えば、
Router::connect('/', array('controller' => 'tests'));
とすると、ブラウザでルートを指定したときtestsコントローラーのindexアクションが実行される。

デフォルトで表示されるCakePHP設定チェック画面に
To change the content of this page, create: APP/views/pages/home.ctp.
と書かれているからそれで終了なはずなのに、なぜか自分は1時間ぐらい調べた。
スポンサーサイト

コメント

解決しました。

cakePHP内WEBROOTでアクセスした場合に指定のコントローラー名のファイルにアクセスしたくていろいろしらべていたら
見つけました。
おかげですっきりしました。
ありがとうございます。

Re: 解決しました。

確かに、home.ctpを修正する方法はすぐにわかりますが、routes.phpを修正してコントローラーを指定する方法は見つけづらいですね。
この記事もroutes.phpを修正する方法をメインにすればよかったかな。

コメントの投稿

非公開コメント

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

cakePHPでwebrootにアクセスした際に表示させるコントローラ及びアクションメソッドの変更。

cakePHPは基本的にアクセスした場合はwebroot内index.phpファイルが表示されることになる。 C:\Apache\htdocs\cake\app\webroot\index.phpですね。 こいつが表示されるのだけれど。 こいつを http://1000torque.com/ にアクセスした際に http://1000torque.com/sample/in...
プロフィール

himax64

Author: 南西
30代後半の無職です。
就活もせずダラダラ生きてます。
作ったもの

最新記事
人気記事
検索フォーム
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QRコード
カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。