我有我的网站的支持页面(www.company.com/support)redirect到第三方托pipe的网站(company.custhelp.com)的代理通过规则…但网站链接本身都在单独的域。 有没有办法维护代理会话,以便会话中点击的链接也通过代理,并保持我希望用户看到的“正确的”url?
要伪装域名,您可以使用以下规则。
ProxyPass /support http://company.custhelp.com ProxyPassReverse /support http://company.custhelp.com
远程站点上的任何URI链接都需要是相对的,所以点击的时候,它们本质上是相对于你的域的。 例如:
<a href="faq.html">
与
<a href="http://company.custhelp.com/faq.html">
如果由于某种原因,你不能控制远程站点的内容(我不明白你为什么不这么做),所以没有Apache模块可以parsing页面。 您需要创build一个脚本来处理来自服务器的请求。 该脚本将充当代理:从远程站点获取页面,parsing内容并在将HTML返回给最终用户之前重写HTML(URI)。
创build这种types的脚本时会遇到一些挑战。 一对夫妇想到的是图像和CSS文件。 您将需要决定是否处理通过您的网站提供的图像,或者使脚本不重新渲染图像url。 如果图像引用是相对的,则需要为它们提供服务或使脚本使用远程源域重写这些相对path。 你将有类似的问题与CSS文件。 另一个是“HTTP_REFERER”规则。 虽然很less,如果远程站点有任何“HTTP_REFERER”规则,这些项目将不起作用。
这当然不是不可能的,但是你需要考虑很多可能性。