‘htaccess’タグの記事

RewriteBase »

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) 自分のためにメモっておくが、公開エリアと非公開エリアについて、フルパスでは全く違うのに、相対パスでは参照可能なのだ。不思議。シンボリックリンクを置いているのだろうか?(でもそれなら、フルパスでだってリンクにアクセス可能なのでは?)……もともと別の箇所で相対パスで使用してうまくいっていたから、ますますフルパスが違うなど思いもよらなかったのである。思い込みってよくないね。しかしどういう仕組みなのだろう?

Tail-Lagoon @ 16:24   |   PageUp

htaccess による PHP の設定 »

.htaccess ファイルを用いて、Webサーバ(Apach)における PHP その他の動作設定を変更することはよくあるが、大概サイト構築時の初期の段階において行い、あとは殆ど顧みることがないため、そのうちすっかり忘れてしまうものだ。そして毎回新しいサイトを作るたび、何だったっけ? と探し回るはめになるので、下記に記録。

デフォルトで表示されるページのファイル名を変更したい

DirectoryIndex sample.php index.php index.html
(先に記述したものほど表示の優先順位が上になる)

拡張子 .html のままで PHP を走らせたい

AddType application/x-httpd-php .html .htm

セキュリティ上、下記項目は必ず phpinfo() で値をチェックし、違っていたら下記値で設定すること(必須)

php_flag register_globals Off
php_flag track_vars On
php_flag display_errors Off

  • register_globals オプションを無効にするのは、EGPCS(Environment, GET, POST, Cookie, Server)変数のグローバル変数登録を不可にするため。
  • その代わりに track_vars オプションを有効にして、上記変数をグローバル連想配列 $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER として参照可にする。
  • display_errors はエラー表示するかしないかの設定。テスト環境では有効にしておいた方が開発しやすいのだが、本番(公開)環境では、エラー表示により重要なパスや変数名が表示されてしまうのを防ぐために無効化する。
  • ついでに書いておくと、チェックで使用した phpinfo() のファイルは、必ず削除しておくこと!

※ PHP の httpd オプションについては下記サイトに詳しい。
http://jamesthornton.com/php/japanese/configuration.directives.html

***

↓以下は、PHP じゃないけど、htaccess 関連としてついでに書いておくと

拡張子 .html のままで SSI を使いたい

Options +Includes
AddType text/x-server-parsed-html .shtml .html .htm

(Options は SSI 実行可能領域を設定するのだが、もともと実行可なら必要なし)

※ httpd の設定に関する参考サイト
http://www.tagindex.com/other/htaccess.html

Tail-Lagoon @ 16:03   |   PageUp