2010-06-28 100 views
8

可能吗?从文档根目录服务图像

比方说,我的目录结构是这样的:

/data 
    /data/images 
/public 

的文档根目录是在“公共”目录中。这当然不起作用:

<img src="/../data/images/1.png" alt="" /> 

但也许有可能以某种方式在文档根目录上启用服务映像?我想知道。

+3

好吧,有几种方法,像'符号链接'。 但是,在告诉我们之前,要给出正确的答案是不可能的,在文档根目录 – 2010-06-28 10:22:30

+0

之外存储图像的目的您可以使用.htaccess来重写任何传入的请求到图像以通过图像服务脚本,但是再一次,你为什么要做这样的事情?这不是像这样可以保护你的图像。一旦它显示在浏览器中,它就在客户端上。 – Gordon 2010-06-28 10:23:11

回答

12

最常见的方式是Alias

Alias /data/ /wherever/your/data/are/ 
+1

+1这需要放入'httpd.conf'本身,但它不会在'.htaccess'文件中工作。 – 2010-06-28 10:29:23

+1

+1,我使用这种方法来尝试保留public_html中的许多文档以确保安全性。 – RobertPitt 2010-06-28 10:39:53

+1

@Robert嗯,这将如何增加任何安全性? – Gordon 2010-06-28 10:46:46

4

另一种方式(比如,如果你不能设置一个别名...)是使用脚本作为图像源如:

<img src="image.php?img=myImage.jpg" /> 

image.php将类似于:

<?php 
    header('Content-Type: image/jpg'); 
    readfile("../img/" . $_GET['img']); 
?> 

当然你需要延长脚本过滤$ _GET ['img'],以及检测并设置正确的内容类型。您的脚本甚至可以根据在查询字符串中传递的其他参数调整图像大小。