2008/07/06(日)
CakePHP の設置時、.htaccess でつまずいた。
ローカルでは問題なかったのに、レンタルサーバにアップしたら、500エラーが発生。mod_rewrite が使えないせいかと疑ったのだが、しかし WordPress で使っているのだから、mod_rewrite は使用できるはずだ。
そこでそれぞれの .htaccess を比較すると、CakePHP のそれには Rewritebase の指定がなかったため、これを追加してみたら、あっさり動いた。
(他にも、FTP からは同階層に見えている公開エリアと非公開エリアのフルパスが実は全く違う(※1)ということを知らず、それに気づくまでにもかなりてこずったのだが、これはレンタルサーバの仕様およびドキュメント不足のせいなので、別の問題)
いつかまた同様の問題に出くわすかもしれないので、忘れないようメモしておく。
(webroot)/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / # この行を追加
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
(※1) 自分のためにメモっておくが、公開エリアと非公開エリアについて、フルパスでは全く違うのに、相対パスでは参照可能なのだ。不思議。シンボリックリンクを置いているのだろうか?(でもそれなら、フルパスでだってリンクにアクセス可能なのでは?)……もともと別の箇所で相対パスで使用してうまくいっていたから、ますますフルパスが違うなど思いもよらなかったのである。思い込みってよくないね。しかしどういう仕組みなのだろう?
カテゴリー: FrameWork, Reference | タグ: Apache, CakePHP, htaccess
Tail-Lagoon @ 16:24
|
PageUp
2008/03/12(水)
.htaccess ファイルを用いて、Webサーバ(Apach)における PHP その他の動作設定を変更することはよくあるが、大概サイト構築時の初期の段階において行い、あとは殆ど顧みることがないため、そのうちすっかり忘れてしまうものだ。そして毎回新しいサイトを作るたび、何だったっけ? と探し回るはめになるので、下記に記録。
DirectoryIndex sample.php index.php index.html
(先に記述したものほど表示の優先順位が上になる)
AddType application/x-httpd-php .html .htm
php_flag register_globals Off
php_flag track_vars On
php_flag display_errors Off
※ PHP の httpd オプションについては下記サイトに詳しい。
http://jamesthornton.com/php/japanese/configuration.directives.html
***
↓以下は、PHP じゃないけど、htaccess 関連としてついでに書いておくと
Options +Includes
AddType text/x-server-parsed-html .shtml .html .htm
(Options は SSI 実行可能領域を設定するのだが、もともと実行可なら必要なし)
※ httpd の設定に関する参考サイト
http://www.tagindex.com/other/htaccess.html
カテゴリー: Sample, Web Design | タグ: htaccess, PHP
Tail-Lagoon @ 16:03
|
PageUp