cakephpについて


▽前提条件

ドメイン:www.hoge.com
ドキュメントルート:/home/admin/public_html

▽質問内容

下記のようにcakeのファイルを配置しています

/home/admin/public_html
├.htaccess
├README
├app
├cake
├index.php
└vendors

現在、.httaccessにて"http://hoge.com"にアクセスしてきた場合に
index.phpを開くように設定しているのですが
このindex.phpはそのままの状態だとcakeのステータスチェック?のようなものが
表示されると思います。

このindex.phpにアクセスしてきたときに自分の作成したトップ画面に飛ばす
にはみなさんどうされているんでしょうか

index.phpから作成したモデルを呼び出す?!感じなんでしょうか

わかりやすく解説していただけると助かります

よろしくお願い致します

回答の条件
  • 1人2回まで
  • 登録:2009/04/02 18:48:56
  • 終了:2009/04/09 18:50:02

回答(1件)

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752009/04/03 20:02:16

ポイント10pt

たぶん、動作を勘違いされていると思います。

index.phpにアクセスすると、mod_rewriteが利いていれば、app/webroot/index.phpが実際には呼ばれます。同様に、app/index.phpにアクセスされた場合も同様です。

で、mod_rewriteが利いていないとどうなるかですが、結局は、app/webroot/index.phpをincludeします。

ここまでは、.htaccessとindex.phpの中身を見てもらえれば分かると思います。


その上で、では、app/webroot/index.phpが何をするかですが、URLの構造からControllerなどを決定するDispatcherを呼び出します。その際に参考にするのが、app/config/routes.phpです。


デフォルトのapp/config/routes.phpでは、index.phpに何もなしでアクセスされた場合には、PagesControllerのdisplayアクションにパラメタが起動され、その際のパラメタは'home'となります。そのため、pages/home.ctpが表示されます。


初期状態では、app/views/pages/home.ctpはないので、cake/libs/views/pages/home.ctpが利用されます。jayzさんがおっしゃっているステータスチェックというのは、このことになります。

そのため、方法としては2つ方法があって、

1.PagesControllerをオーバーライドする

2.routes.phpを設定する

のどちらかになります。

何かの参考になれば。

  • id:kn1967
    自前のものを使ってますので何とも言えませんが
    CakePHPのドキュメントを軽く読んでみたところ、
    mod_rewrite で飛ばすか、pretty URLs を使うかだけの話では?

    どちらをチョイスするかは、
    サーバ次第、設計次第、結局のところ経験次第?

    とりあえず、下記参照。
    http://cakephp.jp/doc/apas05.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません