1

Web サーバー上のファイルにアクセスしたときに PHP コードを実行したいと考えています (例: /../../somefile.pdf)。

ユーザーが初めて Web サイトにアクセスしたときに、免責事項を表示する必要があります。WebページにアクセスするたびにPHPスクリプトを実行できるようにしましたが、Webページの代わりにファイルにアクセスしたときにスクリプトを実行する方法がわかりません。これは可能ですか?

ありがとうございました!

4

2 に答える 2

2

ダウンロードを追跡する場合、2つの方法があります。

  1. ダウンロードURLを変更して、PHPファイルを経由するようにします<a href="/../../somefile.pdf">..</a><a href="/download.php?file=/../../somefile.pdf">..</a>
  2. .htaccess(Apache Rewrite mod)でrewriteを使用して、ダウンロードURLを最初にPHPファイルにリダイレクトします。次に例を示します。 RewriteRule ^download_directory/(.*)$ /download.php?file=$1 [L,QSA]

ファイルには、download.phpに2つのオプションがあります。

  1. パラメータのパスを使用してファイルを読み取り、filePHPを使用して出力をエコーし​​ます。(このメソッドは、ユーザーがパラメーター内のパスを変更して、fileアクセスするはずのないファイルを取得する可能性があるため、安全ではありません。)
  2. ファイルはWebルートにあるため(つまり、直接アクセスできるため)、トラッキングコードの実行が完了したら、ユーザーを実際のファイルにリダイレクトすることをお勧めします。header('Location: ' . $_GET['file']);
于 2013-03-10T08:57:03.177 に答える
1

原作者にはちょっと遅いかもしれませんが、MODX静的リソースはこれに最適です。

静的リソースは、サーバーでホストされている実際のファイルの抽象化であり、このインスタンスでは、標準の Web ページ要求と同じ方法で、既に使用している同じスニペット/プラグインを実行できます。.htaccess mod やカスタム ヘッダーは必要ありません。

より詳しい情報:

于 2013-03-11T15:43:32.400 に答える