我有这个页面:
http://mysite.org/myapp/pages/blog?name=user9
我需要这个:
user9.mysite.org
我应该在我的 routes.py 中写什么?
我有这个页面:
http://mysite.org/myapp/pages/blog?name=user9
我需要这个:
user9.mysite.org
我应该在我的 routes.py 中写什么?
好的,所以我认为这有点误解了。您需要从 web2py 应用程序提供 user9.mysite.org。如果您的站点托管在 mysite.org 上,一种方法是将所有请求(无论子域如何)传递给 web2py 应用程序(您需要使用您的 DNS 提供商提供像 *.mysite.org 这样的 A 记录:http:/ /kb.mediatemple.net/questions/791/DNS+Explained#/A_Record )
然后,您可以使用路线
就像是:
routes_in = (
('http://(?P<user>.*).mysite.org/(?P<any>.*)',
'/app/pages/blog/\g<any>?name=\g<user>'),
)
<any> 将保存您可能需要的任何参数。这应该将来自 user9.mysite.org 的请求映射到 mysite.org/app/pages/blog/<args>?name=user9
您可能需要稍微尝试一下才能使其正常工作。关键是确保对 mysite.org 的任何子域的请求直接发送给应用程序。这意味着如果您访问 www.mysite.org、mysite.org、somerandomfakesubdomain.mysite.org,您将始终到达与 mysite.org 相同的位置。您可能希望在您的博客函数中加入一些逻辑,以确保子域字符串(例如 user9)代表有效用户。