PHP

.htaccessって設置した階層以下に効くものじゃなかったっけ?

PHPのmbstring系の設定を.htaccessで対応した際のバグについて

なんかPHPで作ったものがちょいちょいおかしな動作をしていた。
調べてみると、mbstring.encoding-translationがたまにOnになっている。。
いろいろ調べてみたんだけど、どうやらmbstring系のバグらしい。

.htaccessのmbstring系の設定がディレクトリをまたいで他のphpに反映されてしまう現象について

そしてこの不具合は5.2.5あたりで対応されているらしい。

となるともうどうしようもないので、暫定的に起動phpファイルと同階層に、デフォルトの設定を明示するphpの設定を記述した.htaccessを設置。これで一応問題なく動く模様。

対策って。。

  • こちらの意図しないタイミングで起きるので、新規で既存サーバにプログラムを設置する時、SSHで.htaccessの有無とその内容を確認する。
  • 使用するphpのバージョンを5.2.10以降にしてもらう

ぐらいかなぁ。

 

※どうやらこれ以降のバージョンにも同じような不具合が発見されているようです。
特定の環境で mbstring.internel_encoding の値が反映されない場合がある(PHP 5.2.9 以前)