Apache - 允许访问服务器上的“共享”目录

时间:2012-12-13 17:28:30

标签: linux apache

在这里遇到一些问题,而我想配置我的apache服务器让一个子域访问另一个子文件(共享),以消除直接URL调用的需要和开销。

例如,我希望我的主域名(site.domain.com)能够访问位于“共享”域中的图片(share.domain.com/images)。

目录结构如下:

- subdomains
    - site
    - share

我有一个包含以下内容的site.domain.com/index.html文件......

<img src="http://share.domain.com/images/img.jpg"> (works)
<img src="../share/images/img.jpg"> (does not work)

无论有多少“../”我添加我仍然无法退出目录。当我对那个不起作用的人进行“查看图像”时会显示。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

免责声明:我不是专家。

我认为您无法访问共享区域的原因是在DocumentRoot之下,在查看文档后我认为您想要的是Alias指令;其文档可在以下网址找到:

http://httpd.apache.org/docs/2.2/mod/mod_alias.html#alias

用法的一个例子是:

Alias /share path-to-share
<Directory path-to-share>
    Order allow,deny
    Allow from all
</Directory>

您需要将其放入配置中的<VirtualHost>块中。这样做会将/share/imgages/img.jpg映射到<path-to-share>/images/img.jpg,以便您可以像DocumentRoot中的文件一样访问它。

通过此设置,您的示例将成为:

<img src="http://share.domain.com/images/img.jpg"> (works)
<img src="/share/images/img.jpg"> (should work)

我希望这会有所帮助。

答案 1 :(得分:1)

让我们假设您的网站位于/var/www/site下(site.domain.com) 并且您的共享文件夹位于/var/www/share(share.domain.com)。

如果您希望共享只是一个可从site.domain.com/share访问的子目录 所有你需要做的就是创建一个从/var/www/share/var/www/site/share的符号链接:

ln -s /var/www/share /var/www/site/share