我正在尝试将文件夹保密,但允许html文件访问该文件中包含的内容。
例如,私人文件夹中的.htaccess包含
命令拒绝,允许
否认所有人
允许来自127.0.0.1
在里面,有一个名为'hidden.jpg'的图像
在私人文件夹之外,我想创建一个带有行的html文件
<img src='private/hidden.jpg'>
不幸的是,我看不到图像。有关更好的方法的任何想法吗?我也尝试将文件放在web目录之外并使用file_get_contents()抓取它,但这并没有正确获取整个文件(播放以这种方式访问的.ogv文件时HTML5视频播放器中断)
非常感谢任何帮助。
答案 0 :(得分:1)
尝试通过HTML文档访问文件与直接访问文件相同。如果您无法直接访问它,则无法将其放在<img>
标记中。
.ogv文件有多大?如果文件太大,file_get_contents()
将失败,因为它试图将整个文件读入内存。试试readfile()
。
但我仍然不确定你在这里想要达到的目标。即使您使用简单的PHP脚本从Web目录外部获取文件,任何知道该PHP脚本路径的人都能够像公共文件一样轻松地获取该文件。它是否落后于某种登录?
答案 1 :(得分:0)
你的帖子有点模糊,所以我会尽力回答。
您必须记住,HTACCESS是服务器端。 HTML请求(例如IMG标记)是客户端支持,这意味着它完全不同于获取该图像标记的HTTP请求。允许来自127.0.0.1
允许服务器打开它,但不允许任何客户端打开(因为浏览器,除非在服务器上,否则将始终是另一个IP地址)。
您的HTACCESS代码只允许服务器访问该图像(这是毫无意义的)。 HTACCESS是过滤/控制/编辑 HTTP请求,这是浏览器所做的。实际上,您的HTACCESS配置不允许任何人查看图像。
你想要完成的是不可能的;服务器不知道哪个请求来自哪个HTML文件,总是,总是,总是是欺骗该请求以让某人访问该图像的方法。
希望这有帮助!
答案 2 :(得分:0)
老问题,但这可能对某人有所帮助。如果将.htaccess文件添加到目录并将其放入其中:
Options -Indexes
它允许您通过单个URL访问目录的内容,但不能查看目录本身。