【发布时间】:2012-10-21 03:15:20
【问题描述】:
在 PHP 中,我编写了一个接受 url、用户代理和其他设置的代理函数。然后该函数向网站发出 curl 请求,并将带有正确 html 内容类型标题的输出打印到 iframe 中(这只是因为我需要更改一些标题才需要)。
代理输出通常包含大量具有相对 URL 的资产,并且实际上继承了我网站的主机名,而不是代理网站:
示例: [http://MYSITE.com/proxy?url=http://somesite.com] 将返回 [http://somesite.com]
在响应html中,有这样的东西:
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
问题:
资产不是在 http://somesite.com/assets/ico/apple-touch-icon-144-precomposed.png 寻找该资产,而是实际上尝试在 http://MYSITE.com/assets/ico/apple-touch-icon-144-precomposed.png 找到它,这是错误的。
问题:
我需要做些什么才能让他们的相对路径资产通过代理正确加载?
【问题讨论】:
-
您需要在通常的嫌疑人中搜索相关网址。我将从
href和src属性开始。但除了这两个之外,我想不出任何更明显的地方可以找到它们。您可能会遇到使用带有相对路径的url()的 CSS 文件的问题,因为这将更难搜索。 -
你说得对。我已经尽我所能来替换所有的 src 和 href 以及类似的东西。但是,一旦加载了 css 文件,这些文件的内容也将使用相对路径。因此问题:/
标签: php proxy relative-path