我有一个需要用户名和密码身份验证的 Web 应用程序。如果用户尚未登录,则系统必须阻止用户访问 URL。
例如下面的 URL 应该被禁止,这样用户就不能打开/下载 PDF 文件。只有用户登录后才能访问 URL。
http(s)://database.mysite.com/files/whatever.pdf
有什么方法可以做到这一点,尤其是.htaccess
?
谢谢
我有一个需要用户名和密码身份验证的 Web 应用程序。如果用户尚未登录,则系统必须阻止用户访问 URL。
例如下面的 URL 应该被禁止,这样用户就不能打开/下载 PDF 文件。只有用户登录后才能访问 URL。
http(s)://database.mysite.com/files/whatever.pdf
有什么方法可以做到这一点,尤其是.htaccess
?
谢谢
最简单的方法是将以下内容添加到文件夹中的 htaccess 中:
deny from all
然后,有一个 PHP 脚本作为您的下载处理程序 - 例如 www.mysite.com/downloads.php?file=whatever.pdf。然后,php 脚本可以处理用户是否具有正确的访问权限。
我删除了 webroot 之外的文件夹,并使用了一个名为 download.php 的文件来首先验证登录并读取要下载的文件的内容。开发人员以前不是这样设计的。
require_once 'validate_login.php';
function download($filename)
{
$path = '/var/www/vhosts/forms/';
if (file_exists($path . $filename))
{
//echo $filename . ' exists';
header('Content-disposition: attachment; filename= ' . $filename);
header('Content-type: application/pdf');
readfile($path . $filename);
}
else
{
echo $filename . ' doesnt exist';
}
}
$filename = $_GET['filename'];
download($filename);