2012-12-05 102 views
4

我想設置一個子域名子域路由系統,其中的子域是用戶的配置文件,並且域可以是任何東西,因此它不必根據它運行的服務器來設置。任何域的webapp2子域路由

我現在有沒有路由我只是試圖使用正則表達式來捕捉子域後的所有東西。

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

所以我希望能夠轉到像username.preset-sub.localhost.com/這樣的網頁,並讓它被路由到該處理程序。

回答

4

我把我正在開發一個項目的例子,我不得不使用過濾子域在哪裏發送的網址:

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'), 
]) 

如果你嘗試在網絡上,則要添加CNAME在您的應用程序的域和管理面板的cPanel中。更多信息:webapp2 - URI routing - Domain and subdomain routing

+0

對,但在我的情況下,子域的第一部分可能是任何東西,所以路由服務器可能如此 .preset-sub。*,因此它可以在本地dev dev.app.com和web上工作。 app.com無論他們碰巧被命名。 – BillPull