通过代理修改页面内容

通过代理修改页面内容

是否可能出现以下场景:我想通过我的 Web 服务器访问第三方网站。是否可以在中间将所有对第三方 .CSS 文件的请求重写为我的服务器上的文件?

答案1

是的,不过抓取数据将由您的 Web 服务器执行,而不是客户端。如果配置不当,您将成为网络上的开放代理,这是一件坏事。除非您考虑 SSL,否则直接从您自己的页面调用远程服务器上的 css 文件可能会获得更好的客户端并行化。

<ifModule mod_proxy.c>
    RewriteRule http://example.com/css/pretty.css    http://othersite.com/css/pretty.css [P]
</ifModule>

这将利用 mod_rewrite 和 mod_proxy 来做您想要的事情,您网站上对 pretty.css 的请求将从远程站点获取,并像您的站点一样提供服务。

当您开始将正则表达式引入 RewriteRule 时,可能会遇到麻烦。

<ifModule mod_proxy.c>
    RewriteRule http://example.com/css/(+*)    http://othersite.com/css/$1 [P]
</ifModule>

这将通过类似http://example.com/css/../cgi-bin/mt.cfg到远程站点,远程站点将正常提供服务。

相关内容