将外部URL重写为内部URL

时间:2014-02-02 19:08:01

标签: node.js apache mod-rewrite

我找到了一个网站,他们将外部网址重写为内部网址,通过这个技巧,他们可以避免在iframe中使用相同的原始政策。 以下是他们如何做到这一点的一些例子:

External URL: http://stackoverflow.com
Internal URL: https://stackoverflow-com-m.surfly.com/HT/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.facebook.com
Internal URL: https://facebook-com-m.surfly.com/www/ST/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.bbc.co.uk
Internal URL: https://co-uk-m.surfly.com/bbc/www/HT/mj5qTc22vRI6M9mfrKULbCp//////////

External URL: http://www.google.de
Internal URL: https://google-de-m.surfly.com/www/ST/mj5qTc22vRI6M9mfrKULbCp//////////?gfe_rd=ctrl&ei=a5XuUueLN8yG8Qe8kIBI&gws_rd=cr

mj5qTc22vRI6M9mfrKULbCp是一个简单的会话变量部分,但HTST部分是自动更改的,我不知道为什么也不知道它意味着什么。

如何重写这样的网址并在我自己的域中加载外部网站?

1 个答案:

答案 0 :(得分:0)

您必须下载并处理页面中的链接,然后在iframe中显示重写的版本。

因此,例如,您必须替换:

  • 所有完整网址(http://...https://...
  • 所有仅限协议的网址(//...
  • 所有相对网址(/foo/barfoo/bar

要真正做到正确,您还必须使用图像和脚本执行此操作,包括替换脚本中的所有URL。这是一项重大挑战。

此外,这可能违反某些司法管辖区的法律或相关网站的使用政策。你应该考虑和律师谈谈。