Play2 - 子域名

时间:2012-08-21 15:47:27

标签: java routing playframework playframework-2.0 subdomain

我想用子域创建一个像stackexchange这样的网络。

例如

subdomain1.test.com
subdomain2.test.com
subdomain3.test.com
subdomain4.test.com

我还希望将所有网站都放在一个应用程序中,以便我可以更轻松地扩展和维护它们。

我如何在play2中执行此操作?

我可以在routes中指定子域吗?

伪代码

GET     subdomain1/                           controllers.Application.index()
GET     subdomain2/                           controllers.Application.index()

1 个答案:

答案 0 :(得分:2)

它不起作用:如果router包含两个具有相同类型和目标操作的路由,则它将仅首先使用。对于最快的解决方案,您可以创建一个包装方法,它将执行您需要的操作并在视图/控制器级别上使用它们:

route

GET   /home    controllers.Application.index

Application controller

public static String linkMeta(play.api.mvc.Call path) {
    return "http://meta.domain.tld" + path;
}

模板样本:

<a href='@Application.linkMeta(routes.Application.index)'>Absoulte URL link to meta's index</a>
URL: http://meta.domain.tld/home

<a href='@routes.Application.index'>Relative URL to meta's index</a>
URL: /home