2013-11-23 151 views
0

我有一个像example.com这样的域,其中根目录是web。 我创建了一个子域名happy.example.com,其目录位于名为happy的web文件夹之外并将其连接到happy.example.com。使用htaccess从子目录中的根目录读取图像

我的网页树看起来像

happy 
web/images 

所以我所有的根目录图像存储在(网页/图片)

example.com/images 

所以到图像的完整路径可以

example.com/images/me.png 

现在我创建了一个我打电话给的sudbdomain:

happy.example.com 

什么,我想要做的是,如果我输入

happy.example.com/images/me.png 

的话,我应该能看到的画面。 所以不知何故,我需要将所有图像文件夹链接到网站根目录的子域。 我希望你们有我的问题。 我想我应该有一个htaccess文件与所有有趣的东西在幸福文件夹?

Cheerz

回答

2

因为你的两个域的两个文件的根没有相互连接(一个接一个,或相同的内径),你需要或者重定向或代理,或者使用脚本。

重定向是最简单的,但它会在浏览器的地址栏更改URL:

Redirect 301 /images http://example.com/images 

或使用mod_rewrite:

RewriteEngine On 
RewriteRule ^images/(.*)$ http://example.com/images/$1 [L,R=301] 

为代理服务器,你需要有mod_proxy的加载,如果您使用虚拟主机或托管服务,情况并非总是如此。但是你可以使用P标志的mod_rewrite做到这一点:

RewriteEngine On 
RewriteRule ^images/(.*)$ http://example.com/images/$1 [L,P] 

最后一个选项是路由所有请求至一个脚本,如PHP脚本什么的。和脚本本身返回图像:

RewriteEngine On 
RewriteRule ^images/(.*)$ /load_image.php?image=$1 [L] 

,那么你就会有这样的:

<?php 
    header("Content-type: image/jpeg"); 
    readfile('../web/images/' . $_GET['image']); 
?> 

很显然,你需要检查的延伸和返回根据图像的正确内容类型类型。

+0

我可以给你最大的拥抱:) mod_rewrite选项为我工作... – Mensur