phpファイルを使用して、pdfファイルがNONPUBLICフォルダーに保存されている場所にファイルをフィードする必要があります。
たとえば、PDFを非公開のアクセス可能なディレクトリに配置します。たとえば、/ home /pdfs/としましょう。
そして、パブリックアクセス可能なディレクトリにあるPHPスクリプト、たとえば/ home / public_html /
パブリックディレクトリのスクリプト内に次のように配置します。
if (isset($_GET('password')) {
die('wrong password');
}
if ($_GET['password'] != 'mypass') {
die('wrong password');
}
$file="/home/pdfs/test.pdf";
header("Pragma: public");
header('Content-disposition: attachment; filename='.$file);
header("Content-type: ".mime_content_type($file));
header('Content-Transfer-Encoding: binary');
ob_clean();
flush();
readfile($file);
GET値を使用してダウンロードするファイルを決定しますが、セキュリティを強化するには、.pdf拡張子のみを許可し、他のすべてのピリオドとスラッシュを削除して、サーバーのディレクトリを通過したり、パスワードなどを含む重要なセキュリティファイルが与えられたりしないようにします。さらに安全にするために、文字az0-9および-または_を使用してPDFファイルに名前を付けるだけです。
次に、ファイルをダウンロードする場合は、上記のスクリプトへの正しいURLを作成し、PDFファイルが非公開ディレクトリに存在することを確認します。