我有一个非常简单的页面,用户可以登录并下载pdf。 pdf的路径直接从数据库中提取并回显到链接中。关于我的脚本的一切都很有效,除了我需要阻止任何人访问pdfs的文件夹。我尝试使用以下内容将htaccess文件添加到pdf目录:
Order deny,allow
Deny from all
Allow from localhost
除了其他几个变体之外,每次只是打破了pdf的链接。我做错了什么?
答案 0 :(得分:1)
回应链接直接获取PDF是不够的。 Allow from localhost
表示服务器可以访问它,但不能访问用户。因此,您必须制作一种“代理”php脚本,以使服务器触发下载:
<?php
$pathToThePdf = $_GET['pdf_path'];
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="mydownload.pdf"');
readfile($pathToThePdf);
然后在您最初的PHP脚本中,您回显指向该代理的链接:
echo '<a href="/path/to/proxy.php?pdf_path='.$thePdfPath.'">download</a>';
显然,您需要通过检查用户是否已登录来为此代理添加一些安全性。
答案 1 :(得分:0)
如果您将localhost
更改为IP地址或服务器IP,它将起作用。
如果您专门前往http://localhost
,则需要使用::1
,否则请使用服务器的IP地址。
order deny,allow
deny from all
allow from ::1