Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess拒绝所有帮助?_Php_.htaccess - Fatal编程技术网

Php .htaccess拒绝所有帮助?

Php .htaccess拒绝所有帮助?,php,.htaccess,Php,.htaccess,我有一个照片分享网站,用户可以编辑他们的照片隐私。一个主要的问题是,其他用户可以从用户那里看到隐藏的图片。所以我想在我的IMAGES目录中,把deny from all放在一个.htaccess文件中 但这限制了所有图像的显示 最好的方法是什么 谢谢Coulton您可以使用mod rewrite和一个调度程序来检索url文件。调度器还将检查凭据 示例:用户访问 配置mod rewrite以将其转换为。由于rewrite,除非您配置rewrite模块,否则任何用户都不会访问index.php页面之

我有一个照片分享网站,用户可以编辑他们的照片隐私。一个主要的问题是,其他用户可以从用户那里看到隐藏的图片。所以我想在我的IMAGES目录中,把
deny from all
放在一个.htaccess文件中

但这限制了所有图像的显示

最好的方法是什么


谢谢Coulton

您可以使用mod rewrite和一个调度程序来检索url文件。调度器还将检查凭据

示例:用户访问

配置mod rewrite以将其转换为。由于rewrite,除非您配置rewrite模块,否则任何用户都不会访问index.php页面之外的任何内容

php是调度器并检查页面是否确实存在。如果是,则调用处理getimage的控制器。 控制器getimage检查用户凭据,如果用户可以获取文件123,则显示123.jpg


这只是多种解决方案的一种变体。这完全取决于您的站点体系结构。

在这样的情况下,在只允许您将所有文件放在文档根目录下而不放在文档根目录外的Web服务器上,通常使用带有deny from all指令的.htaccess文件来禁止http访问特殊目录及其子目录

不建议进行某种模糊处理(借助MD5或SHA1等函数创建目录名)

在PHP函数的帮助下交付图像,该函数可以执行案例中所需的所有必要权限检查。此处提供了一个实际返回文件的简单示例:


您有什么样的登录机制来识别用户?您可能需要利用它,并在进行登录检查后传递文件。对数据库进行mysql\u查询以为用户创建会话。你如何通过文件传递它?在数据库中,我有图像的位置和它的隐私。如果它不是私有的,我将显示它;如果它是私有的,我将不显示它。我最好的选择是什么?我现在的做法是我拥有数据库中的权限。如果它是私有的,则不会显示图像。如果不是,则会显示图像。但是我在想,如果有人得到了这个URL,当它被设置为私有时,他们就可以随意查看它。而且,我的目录也是通用的。domain.com/user/picture/id您可以将
DENY FROM ALL
放在“picture”目录中。只有在用户允许的情况下才会显示图像:如果图像不是私有的,每个人都可以看到。剩下的取决于你的想法。逻辑是在实际交付图像的PHP文件中。当它是一张私人图片且用户已登录时,您将如何覆盖
DENY FROM ALL
?谢谢,你不需要。您可以通过PHP脚本本身交付图像。请在我的链接页面中查看已接受的答案。这就像某种代理——PHP脚本隐藏了实际位置。