4

我想设置一个包罗万象的子域路由系统,其中子域是用户的配置文件,域可以是任何东西,因此不必根据运行它的服务器进行设置。

我现在拥有的不是路由我只是尝试使用正则表达式来捕获子域之后的所有内容。

routes.DomainRoute('<subdomain>.preset-sub.<.*>', [
                webapp2.Route('/<page_url:\w+>', handler = SubHandler),
            ]),

所以我希望能够转到像 username.preset-sub.localhost.com/ 这样的页面并将其路由到该处理程序。

4

1 回答 1

4

我举了一个我正在开发的项目的例子,我不得不用它来过滤发送 URL 的子域:

app = webapp2.WSGIApplication([

    routes.DomainRoute('api.domain.com', [
        webapp2.Route('/', handler=HomeApi, name='subdomain-home'),
        webapp2.Route('/user', handler=UserApi, name='subdomain-home'),

    ]), 
    routes.DomainRoute('web.domain.com', [
        webapp2.Route('/', handler=HomeApi, name='subdomain-web-home'),
        webapp2.Route('/login', handler=Login, name='login-home'),
        webapp2.Route(r'/products/<product_id:\d+>', ProductHandler),
    ]), 
    webapp2.Route('/', handler=Home, name='home'),
    webapp2.Route('/contact', handler=Contact, name='home'),
])

如果您在网络上尝试,则必须在您的域的 cpanel 和应用程序的管理面板中添加 cname。更多信息:webapp2 - URI 路由 - 域和子域路由

于 2012-12-07T19:50:17.903 回答