基于Web2Py的routes.py中的函数定义子域

时间:2011-10-01 21:02:31

标签: python blogs web2py urlrewriter

我有这个页面:

http://mysite.org/myapp/pages/blog?name=user9

我需要这个:

user9.mysite.org

我应该在我的routes.py中写什么?

1 个答案:

答案 0 :(得分:4)

好的,所以我认为这有点误解了。您需要通过web2py应用程序提供user9.mysite.org。一种方法是,如果您的网站在mysite.org上托管,则将所有请求(无论子域名)传递给web2py应用程序(您需要与您的DNS提供商一起使用* .mysite.org等A记录:{{3 }})

然后,您可以使用路线

类似的东西:

routes_in = (
  ('http://(?P<user>.*).mysite.org/(?P<any>.*)',
  '/app/pages/blog/\g<any>?name=\g<user>'),
) 

&lt; any&gt;将保存您可能需要的任何参数。这应该将来自user9.mysite.org的请求映射到mysite.org/app/pages/blog/<args>?name=user9

你可能需要稍微玩一下才能让它发挥作用。关键是要确保直接向应用程序发出对mysite.org的任何子域的请求。这意味着如果你去www.mysite.org,mysite.org,somerandomfakesubdomain.mysite.org,你将总是和mysite.org到达同一个地方。您可能希望在博客功能中添加一些逻辑,以确保子域字符串(例如user9)代表有效用户。

相关问题