php - 在授予目录访问权限之前,使用 htaccess 验证 php

标签 php validation .htaccess mod-rewrite

我正在开发一个应用程序,用户可以在其中创建帐户并上传图像,这些图像存储在目录中,然后可以在应用程序本身或应用程序的公开可见部分中显示。现在我真的很想保护图像,只允许在满足某些条件的情况下访问这些图像,即设置 session 或将图像的数据库权限设置为公共(public),仅举几例.

所以,我需要的是,每当加载该目录中的图像时,htaccess 文件都会将图像名称传递到该目录中的 php 文件中,该文件会运行它必须执行的任何检查,如果返回 true, htaccess 可以继续吐出图像(无论是在标签中还是刚刚在浏览器的地址栏中输入)。

我浏览了很多帖子,但没有找到任何东西。我无法想象这是不可能的,所以任何能够提供指导的人都会受到祈祷 - 如果你是本地人,那么,可能还会有其他好处!

最佳答案

将上传的图像存储在无法通过网络访问的文件夹中,然后 使用重写规则将请求转发到php;类似于: RewriteRule ^images/([^/]+)/image.php?img=$1 [NC]

在 php 中进行验证,如果可以,则通过 php 从不可读文件夹转发图像;类似的东西

header('Content-type: '.$mime);
header('Content-length: '.filesize($filename));
$file = @ fopen($filename, 'rb');
if ($file) {
  fpassthru($file);
  exit;
}

关于php - 在授予目录访问权限之前,使用 htaccess 验证 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6817918/

相关文章:

php - 从 LEMP 服务器上的源代码安装 Memcached 1.4.2.0 并使其与 PHP5-Memcached 通信

php - 如何从第一个选择查询结果集中多次运行选择查询?

php - Codeigniter 中的文件上传验证

php - Laravel 4 虚拟主机和 mod 重写设置

apache - 未知目录的重写规则

.htaccess 将根重定向到子文件夹

php - 下载大目录时 FTP 出现问题

php - 简单的 afterSave 方法在 Yii 中不起作用

.net - 类级验证

validation - Symfony2 : how to validate UploadedFile without form?