我在受密码保护的目录中有图像,但我想在正常的未受保护的网站上显示这些图像。
当我尝试并用简单的方式显示它们时:
<img src ='PASSWORD PROTECTED DIR/Image.jpg">
要求我输入用户名和密码。
但是,当我实际导航到受密码保护的目录中的内容时,我只想输入用户名和密码。
我正在使用PHP。
有什么想法吗?
答案 0 :(得分:1)
假设您使用的是Apache。
您可以在.htaccess
文件中排除一些定义密码保护的文件。
未经测试,但这应该有效:
<Files "path/to/image.jpg">
Allow from all
Satisfy any
</Files>
但更可取的选择是简单地将图像放在受保护目录之外。
答案 1 :(得分:0)
没有很多棘手的代码,这基本上是无法解决的。 <img>
命令表示您的用户将要求提供该信息,这与直接请求信息没有什么不同。
您可以启动并检查请求是如何制作的,过滤,通过php文件加载所有图像等,但使用基本工具是不可能的。
直接或通过<img>
标记请求图片是相同的。
答案 2 :(得分:0)
因为它是PHP,你可以在一个单独的文件中这样做(imgHandler.php)
<?php
// Allowed files
$allowedfiles["image1"] = "./the_dir/Image.jpg";
$allowedfiles["image2"] = "./the_dir/Image2.jpg";
function getImage($path) {
echo file_get_contents($allowedfiles[$path]);
}
getImage($_REQUEST['img']);
?>
然后对于要显示的图像,只需使用:
<img src="imgHandler.php?img=image1" />
这不会阻止缓存,并且比我之前提出的其他解决方案更安全。