2

也就是说,假设我正在写一些托管在foo.com. 我希望能够为用户提供服务foo.com/bar.com并能够与之交互(例如,通过点击导航到)。我知道这是代理应该做的。我需要对访问代理的请求进行一些预处理,这就是我转向 Web 框架的原因。我偏爱 django、rails 或 sinatra,或其他 python/ruby 解决方案,但任何一个都可以,真的。bar.comfoo.combar.comfoo.com/bar.com/baz

提前致谢; 欢迎提出其他建议。

4

2 回答 2

0

我只能谈论 django,但是....

如果你只想在多个网站上使用相同的对象/数据,你应该看看django 网站框架

对于重定向,我建议使用重定向应用程序

或者您只需在视图中使用重定向快捷方式

于 2010-02-28T01:15:57.570 回答
0

首先,您需要解析 foo.com 上的 URL。在 django 中,你可以有一个这样的 url(未测试):

url(r'(?P<url>.*)$', my_proxy_view, name = 'proxy')

所以http://foo.com/bar.com/baz/会给你一个 'bar.com/baz/' 的 URL,你可以在你的视图中随意使用。

然后,您必须使用 urllib2 之类的库来检索 bar.com 上的页面。

当您拥有远程页面的内容时,您需要将所有指向 bar.com 的链接(锚元素)更改为指向您代理的 URL。如果您想代理图像、样式表和 javascript,您还需要更改它们的链接。

您可能还想尽可能多地缓存。并确保在 urllib 请求上设置一个用户代理,让其他站点知道这是某种机器人或代理。


话虽如此,这听起来是一个非常愚蠢的想法。你的用例是什么?

于 2010-02-28T08:52:53.083 回答