我有一个PHP文件:index.php位于我的web目录的根目录(某些内容):
<?php
echo '<div>
<img src="images/test.png">
</div>';
?>
我在&#39; images /&#39;中有一个.htaccess文件。包含以下内容的目录:
deny from all
据我了解,这应允许<img src="images/test.png">
显示在网页上,但不应允许用户直接访问test.png
文件,如下所示:www.example.com/images/test.png
(我希望这样抛出一个禁止的错误或沿着这些方向的东西)。
不幸的是,上述内容导致图片无法显示在index.php
上,以及图片未通过直接网址显示:www.example.com/images/test.png
。如果我删除.htaccess文件,图像显示正常,但可以通过直接URL访问。
为什么这不能按预期工作的任何想法?
答案 0 :(得分:1)
类似的东西:
<?php
//Do whatever checking you want
$im = file_get_contents("images/example.png");
header("Content-type: image/jpeg");
echo $im;
?>
请注意,这仍然允许知道php文件名称的人获取图像等;所有这一切都是给你一个检查PHP代码的地方(检查的例子是http_referer检查,如果你想阻止人们从#34;热链接&#34;图像)