如何使用PHP逻辑限制对服务器上的目录的访问?

时间:2016-03-01 05:50:14

标签: php .htaccess

我的服务器上有一个目录,我希望普通大众无权访问。 (没什么。无法访问php文件,图像,任何东西。)

但我想允许某些用户根据我的php中的布尔值访问此受限区域。

有没有办法使用PHP来确定用户是否可以访问目录,类似于使用htaccess文件但具有更多自定义逻辑?

2 个答案:

答案 0 :(得分:0)

最简单的方法之一是将受限用户重定向到您的主页。

<?php
   header( 'Location: http://www.yoursite.com' ) ;
   exit;
?>

您可以通过在数据库中设置布尔值来允许访问特定用户。

以下解决方案将根据您的文件存储位置运行。

$file = '/file.png'; // set your file location
$userAccess = false;
if (file_exists($file) && $userAccess) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=your_file.png');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
}

同时检查link

希望它会对你有所帮助:)。

答案 1 :(得分:0)

所以我终于在其他地方找到了答案,它涉及将PHP文件设置为与htaccess一起使用的一种代理 - http://simpletek.raivo.id.lv/restrict-server-files-access-based-on-php-logic/