10.1.5 mod_rewriteについて
新しいユーザはmod_rewriteでつまずくことがよくあるので、少しだけ説明をしておきます。もし、CakePHPのwelcomeページが少しおかしい(画像が表示されず、cssのスタイルが適用されていない)なら、おそらく、システム上のmod_rewriteが機能していないということです。動作させるための幾つかのヒントを掲載しておきます。
-
httpd.confの中で、.htaccessのoverrideが許可されているか、確かめてください。各ディレクトリごとの設定を定義できる部分があります。該当するディレクトリの
AllowOverrideがAllになっていることを確認してください。 -
user-やサイト固有のhttpd.confではなく、正しいhttpd.confを編集していることを確認しましょう。
-
何かしらの理由で、.htaccessファイルが含まれていないCakePHPのファイルを入手した可能性もあります。これは、'.'ではじまるファイルを隠し属性のものとして扱い、それらをコピーしないオペレーティングシステムがあるためです。CakePHPを本家サイトのダウンロードセクションか、SVNリポジトリからダウンロードしてください。
-
Apacheが、mod_rewriteを正しく読み込んでいることを確認しましょう。httpd.confの中に、
LoadModule rewrite_module libexec/httpd/mod_rewrite.so、そしてAddModule mod_rewrite.cというような部分があるはずです。
サーバでmod_rewrite(や、その他の互換モジュール)を使いたくない、または使えないという場合には、Cakeに組み込まれている pretty URLsを使う必要があります。/app/config/core.phpの中の次の箇所のコメントを外してください。
Configure::write('App.baseUrl', env('SCRIPT_NAME')); Configure::write('App.baseUrl', env('SCRIPT_NAME'));
また以下の .htaccess ファイルを削除してください:
/.htaccess /app/.htaccess /app/webroot/.htaccess
/.htaccess/app/.htaccess/app/webroot/.htaccess
そうすると、URLは、 www.example.com/controllername/actionname/paramではなく、www.example.com/index.php/controllername/actionname/paramという仕方でアクセスできるようになります。

