透過代理修改頁面內容

透過代理修改頁面內容

是否可能出現以下情況:我想透過我的網頁伺服器存取第三方網站。是否可以在中間將所有對第三方 .CSS 檔案的請求重寫為我伺服器上的檔案?

答案1

是的,儘管將由您的網頁伺服器而不是客戶端進行提取。如果以錯誤的配置方式這樣做,您可能會成為網路上的開放代理,這是一件壞事。除非您有 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到遠端站點,遠端站點將很好地提供服務。

相關內容