C-limber's highへようこそ。
C-limber's highは山登りのサイトではなく、福岡システム開発WEB制作会社 C-limber(クライマー)株式会社の技術メモブログです。
福岡システム開発ホームページ制作をお探しの方はお気軽にご相談下さい。

2016年2月24日水曜日

[Yii1] IndexControllerをデフォルトにしない

11:35 Posted by Unknown No comments
こんにちは!
エンジニアの井口です。

Yii2の事を書くと言っていましたが、
Yii1で新たな罠(?)がありましたので、共有します。


Yii1はデフォルトコントローラを config/main.phpで指定できます。

'defaultController'=>'index',

このように設定すると、当然デフォルトがIndexControllerとなり、
ドメイン直アクセスで表示されるページは
IndexControllerになります。


自社でサーバ設定を変更出来る場合はいいのですが、
自社でサーバ設定が変更できない場合、
特にWordpressや他のCMSなどがすでに存在しているサーバで、
サブディレクトリにYiiを設置しないといけない場合など、
制約が厳しい時、非常に困ったことになる可能性があります。


上の階層で、mod_rewriteのRedirectBaseなどが設定してあると、
Yiiが設置してあるサブドメインへ直アクセス(IndexControllerへのアクセス)した場合、
mod_rewriteの設定が下階層まで効いてしまい
ページが表示されない可能性があります。


この対処法ですが
単純に
PageControllerなど、IndexController以外の名前であればアクセスが可能です。


デフォルトコントローラはIndexControllerにしない事!


クライアントのサーバにYiiを設置する場合などはお気をつけ下さい。



ちなみにYiiのコントローラ、アクションのルーティングのデフォルトはそれぞれ、

-------
Controller => default (DefaultController)
Action => index (actionIndex)
-------

となります(^^)



デフォルトアクションを設定する場合は、クラスのプロパティで
class TestController extends CController
{

  public $defaultAction = 'test';

  public function actionTest()
  {

  }

}

と設定します。




-----------------------------------------------
弊社ではシステム開発、Web制作, Iot案件など幅広く対応しております。
ビジネスプランをお持ちの方、WEBアプリを使って何か新しいビジネスを始めたい方、
僕達が力になれるかもしれません
是非お問い合わせ下さい
-----------------------------------------------
同時に、デザイナ、エンジニア、コーダの方募集中です。
サーバ周りからデザイン、システムまでワンストップでの開発を経験できますので、
WEB開発の事を学びたい方にぴったりな職場だと思っております。
またそういった向上心あふれる方と一緒に成長してきたいと思っておりますので、
興味を持たれた方はとりあえずご連絡下さい(^^)
-----------------------------------------------
福岡のシステム開発・Web制作 ・Iot開発 C-limber(クライマー)株式会社


0 コメント:

コメントを投稿