もしREMOTE_ADDRがxxx.xxx.xxx.xxxであった場合に「php_value display_errors Off」を設定するよう

.htaccessまたはhttpd.confに記述したいと思っております。USERAGENTでの記述でも構いません。

例えば.htaccessにこのような設定をしたいと思っています。
SetEnvIf USER_AGENT HOGE object=debug
<判定 object=debug>
php_value display_errors Off
</判定>
参考:http://toriyu.jp/hitorigoto/id523.html

ネット上で調べた所、出来ないという回答が多かったです。
PHPのスクリプト側ではなくApache側でどうにか設定したいのですが、方法をご存じの方いらっしゃいますでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/02/10 16:25:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

PHPのFatalやWarning等のエラーメッセージを画面には出したくないが、Apacheのエラーログには記録したいです。 ただし、各アプリケーションのデバッグモード時には画面に出.. - 人力検索はてな

前質問の関連ならそう書いた方が良いし、前質問が終わってから次を質問した方が良いと思うぞ。

目的と前提条件がぶれる。


ネット上で調べた所、出来ないという回答が多かったです。

有っても良さそうだが、無い。

それに該当するディレクティブがないからどうしようもない。


が、対応方法は無くもない。

PHP: コア php.ini ディレクティブに関する説明 - Manual

auto_prepend_file = /path/to/debug.php

/path/to/debug.php の中身

<?php
if ( $_SERVER{REMOTE_ADDR} == 'aaa.bbb.ccc.ddd' ) {
    ini_set('display_errors','On');
}
?>

とでもすれば、完全に Apache のみでは無いものの既存のコードに手を加える必要は無い。

id:ko-takada

なるほど、ありがとうございました!

そしてご指摘ありがとうございます。ご迷惑をお掛けしてすみません。

2010/02/10 16:20:33
  • id:kn1967
    http://q.hatena.ne.jp/1265700828 の関連だよね。
    phpのソースに組み込まずサーバーの設定だけでやりたいんだよね・・・。

    (案1)
    phpのエラー定数(E_ALL とか ~E_NOTICE とか ~E_STRICT とか・・・)を
    使わずに、本来の数値のほうを使えば、何とかなるかもしれない。
    http://blog.yamamasa.org/?p=79

    (案2)
    php.iniをそれぞれ用意して、PHPIniDir(apache2 限定) で、
    どちらのphp.iniを使うかを決めるというのがシンプルかな?

    いずれも思いつきだけで検証してないからコメント欄で、独り言。
    これが元で質問を混乱に陥れないことを願って・・・。
  • id:ko-takada
    本筋とは少し違いますが、どちらも貴重な情報でした。
    ありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません