Apacheのドキュメントのカスタムerror.htmlは、ページ
エラー処理に渡される環境変数をカバーREDIRECT_環境変数が前にリダイレクトするように存在していた環境変数から作成されている」と言います。彼らがして名前を変更されていますREDIRECT_プレフィックス、つまりHTTP_USER_AGENT
がREDIRECT_HTTP_USER_AGENT
になります。
「ErrorDocumentターゲットが外部リダイレクト(http:のようなスキーム名で始まるものがサーバーと同じホストを参照している場合でも)」の場合、これらのいずれも設定されません。
SetEnvについて:「この指令で設定された内部環境変数は、アクセス制御やURIからファイルへのマッピングなど、ほとんどの初期要求処理指令が実行された後に設定されます。 RewriteRuleディレクティブなどの処理の初期段階に入力する代わりに、代わりにSetEnvIfを使用して環境変数を設定する必要があります。 SetEnv HTTP_MY_VARIABLE "my value"
はここ
設定やサーバ環境変数を使用していくつかの.htaccessの方法はされて、私は生鮮の変更から撮影:一部のサーバーで
、ユーザーが宣言した環境変数は、セキュリティ上の目的、例えばのために「HTTP_」で開始する必要があります
SetEnv myServerName %{SERVER_NAME}
RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig|open_basedir) [NC,OR]
RewriteCond %{QUERY_STRING} (boot\.ini|echo.*kae|etc/passwd) [NC,OR]
RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC]
RewriteRule .* - [E=badQueryString:%0--%1--%2,F,L]
SetEnvIfNoCase User-Agent ^$ noUserAgent
SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) badUserAgent=$1
<limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=badUserAgent
</limit>
お知らせ偶然にの使用、例えば:プレス5Gブラックリスト/ファイアウォールhttp://perishablepress.com/5g-blacklist-2013/は、環境変数のレポートを使用します$ 0 - %1 - %2。 %0は完全な文字列を与え、%1は最初の括弧で囲まれた文からの一致を与え、%2は2番目の括弧で囲まれた文からの一致を与えます。ハイフンは、パラメータ結果を視覚的に分離するためのリテラル表示文字です(そこにスペースを入れる方法はありません)。
環境変数(私の場合は403.phpと404.phpから)にアクセスするためのいくつかのPHPメソッドがあります。 あなたは(のphpinfoで見ていない注)が、$ サーバ内に、また、その403/404リダイレクトを使用して変数がREDIRECT に注意を接頭辞を取得することを、QUERY_STRINGはこれが簡単にできたものである をREDIRECT_QUERY_STRINGなり、サーバーに依存するので、実際の値は$ _SERVERをチェックしてください。例えば、私はhttp://lcblog.lernerconsult.com/2013-server-alert-you-file-not-found-errors/
にいくつかの深さでカバー
あなたはhtaccessのファイルは、その特定のディレクトリに対して有効になっていることを確認していますか?その効果が容易に確認できる別の指令を試してください。 – goat
この他のご質問はあなたを助けますか? http://stackoverflow.com/questions/3780866/why-is-my-env-empty – luchosrock