1

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

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

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

由于我不想解释的原因,我不想在 PHP 或 Apache 中编辑任何配置设置。我也不想修改 index.html 的代码。基本上,我需要找到一个可以 100% 用 PHP 实现的解决方案。url 需要看起来好像用户仍在根目录 (mysite.com) 中,而实际上显示的是子目录 (site1.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

我做了很多搜索,但没有找到可行的解决方案。

4

1 回答 1

1

当您包含()/需要()一个文件时,就好像该文件的内容被逐字剪切/粘贴到执行包含的脚本中。如果 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

输出正确的路径取决于您。

于 2012-04-04T03:45:06.657 回答