我有一个PHP脚本(index.php),其中包含子目录(site1.com)中的index.html文件。此index.html文件显示位于同一目录(site1.com)中的图像。
现在,index.php文件包含index.html文件。显示了index.html中的html,但图像不是。 index.html文件在ROOT目录中查找要显示的图像。这就是问题。我想以某种方式包含site1.com目录的所有内容(??),而不仅仅是单个'index.html'文件。
我尝试过更改工作目录,但没有成功。也许我只是没有正确使用它......
由于我不想解释的原因,我不想编辑PHP或Apache中的任何配置设置。我也不想修改index.html的代码。基本上,我需要找到一个可以在PHP中100%实现的解决方案。当实际显示来自子目录(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
我已经做了很多搜索,但还没有找到可行的解决方案。
答案 0 :(得分:1)
当你包含()/ require()一个文件时,就好像该文件的内容被字面上剪切/粘贴到执行包含的脚本中。如果index.html使用site1.com目录中的图像,则必须使用基于index.php位置的路径来引用这些图像。
远程用户无法判断您是否在网站的子目录中包含了一个文件 - 他们只会看到从您的服务器返回的某些HTML,因此如果您的index.html有类似的内容
<img src="img1.png" />
在其中,但是从index.php脚本中显示html,然后浏览器将要查找
http://example.com/img1.png
不
http://example.com/site1.com/img1.png
由你来输出正确的路径。