使用 PHP 加载外部站点而不破坏该站点中的相关链接

Load external site with PHP without breaking relative links in that site

我有一个 php 页面,我试图在其中加载然后回显和外部页面(它位于同一台服务器中,但在完全不同的 path/domain 中,如果这很重要) .

我试过同时使用 file_get_contents()curl。他们都正确加载了目标页面的 html,问题是它没有正确显示,因为该目标页面有几个文件的相对链接(图像,css,javascript)。

有什么方法可以用 PHP 完成吗?如果没有,下一个最好的方法是什么?目标站点必须看起来像是从初始页面加载的(URL-wise),我不想进行重定向。

所以,浏览器会显示 http://example.com/initial-page.php even though its contents come from http://example2.com/target-page.php

编辑: 这是可以使用 iframe 轻松完成的事情,但出于多种原因我也想避免这样做,其中之一是因为使用 iframe 会破坏目标站点的响应能力。我也无法更改目标站点的代码来修复它。

最后,解决方案结合了我尝试做的事情(使用 curl)和 WebRookie 建议使用 base 的方法html 正在通过 curl 加载的页面中的标记。

在我的特殊情况下,我将 base URL 作为参数传递给 curl 并在加载的页面中回显它,允许我从不同的网站加载同一页面(这是我想要这样做的另一个原因)。