2012-04-04 262 views
1

我有一个包含子目录(site1.com)中的index.html文件的PHP脚本(index.php)。此index.html文件显示位于同一目录(site1.com)中的图像。包含访问相同目录中的文件的子目录中的文件

现在,index.php文件包含index.html文件。显示index.html中的html,但图像不是。 index.html文件正在ROOT目录中查找要显示的图像。这就是问题。我想以某种方式包含site1.com目录的所有内容(??),而不仅仅是一个'index.html'文件。

我试过改变工作目录,但没有成功。也许我只是没有正确地使用它...

由于我不想进行解释的原因,我不想编辑PHP或Apache中的任何配置设置。我也不想修改index.html的代码。基本上说,我需要找到一个可以100%在PHP中实现的解决方案。当实际上显示来自子目录(site1.com)的内容时,该url需要显示为用户仍在根目录(mysite.com)中。这在某种程度上就像透明代理。

[FILE] index.php 
[DIR] site1.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 
[DIR] site2.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 

我已经做了大量的搜索,但还没有找到工作解决方案。

回答

1

当您包含()/ require()文件时,就好像该文件的内容被切割/粘贴到执行包含的脚本中一样。如果index.html使用site1.com目录中的图像,则必须使用基于index.php位置的路径引用这些图像。

远程用户不能告诉你已经包含在您的网站的子目录文件 - 他们看到的一些HTML从服务器回来,因此,如果您的index.html有类似

<img src="img1.png" /> 

在里面,但HTML正在从index.php文件脚本中显示,然后在浏览器将要寻找

http://example.com/img1.png 

http://example.com/site1.com/img1.png 

您需要输出正确的路径。

+0

但不会将工作目录移动到文件夹,然后包括index.php文件做我想要的? – 2012-04-04 03:58:03

+0

编号工作目录纯粹是服务器端的概念,并且完全不会影响客户端浏览器如何解释html。如果您的代码输出'',那么无论您在服务器上执行了任何目录操作,浏览器都会尝试加载该代码。 – 2012-04-04 04:01:58

+0

我可以使用cURL(来自位于根目录的'index.php'文件)连接到我的服务器并从'site1.com'子目录加载index.html文件吗?然后,将加载的内容发送回客户端,就好像内容来自根目录一样。 – 2012-04-04 04:08:47

相关问题