2

誰かがディレクトリ内のPHPスクリプトを要求するたびに、Apacheサーバーで呼び出されるラッパー/ハンドラーを作成しようとしています。そうすれば、ディレクトリ全体のユーザーを承認したり、ディレクトリが呼び出されたときに呼び出される他の要素を記述したりできます。

これは私が思いついた中で最高の構成です...

 <Directory "/srv/http/INNOV/PUBLIC_HTML/kb">
  Options -Indexes
  AllowOverride All
  Order allow,deny
  Allow from all
  DirectoryIndex index.php

  AddHandler auth_handler .php
  Action auth_handler /kb/auth_handler.php
 </Directory>

[Wed Dec 01 12:28:06 2010] [error] [client xxx.xxx.xxx.xxx]設定エラーの可能性があるため、リクエストが10の内部リダイレクトの制限を超えました。必要に応じて、「LimitInternalRecursion」を使用して制限を増やします。'LogLevel debug'を使用して、バックトレースを取得します。

注:LogLevelデバッグには何も表示されませんでした。

これは私のハンドラーです(これまでのところ)...今のところ「エコー」または「ダイ」を実行しようとしています...

<?php
$FILE = $_SERVER['PATH_TRANSLATED'];
//readfile($FILE);
die($FILE);
?>

また、これはvirtualhostディレクティブ内にあることに注意してくださいが、それは問題ではありません。また、「Action」ディレクティブの3番目のパラメーター「virtual」オプションと同じことを試しました。

なぜそれがこれを行うのか誰かが知っていますか?

4

1 に答える 1

2

推測では、auth_handlerスクリプトauth_handler.phpは、処理しようとしているフォルダー内にあるため、無限ループが発生します。つまり、phpリクエストを受信し、auth_hanlderに転送します。auth_hanlderはauth_handler.phpを呼び出そうとし、ハンドラーを再度ロードします。auth_hanlder.phpをそのフォルダーから移動し、問題が解決するかどうかを確認します。

于 2010-12-02T19:57:26.377 に答える