scala - Play Framework 2.3 中的域路由

标签 scala playframework playframework-2.0 playframework-2.3

我想将多个子域和/或根域指向单个 Play Framework 2.3 (Scala) 应用程序,例如 apples.com、bananas.com 或 buy.bananas.com。

根据请求进入的域,我想要不同的路由。

理想情况下,它应该像这样工作:

GET    apples.com        @controllers.ApplesController.home
GET    bananas.com       @controllers.BananasController.home
GET    buy.bananas.com   @controllers.BananasController.buy

在 Play Framework 2.3 中有没有办法做到这一点?

最佳答案

我在 Java 中工作。这是在 Java 中执行此操作的方法,可能会有所帮助

路线

GET    /             @controllers.ApplesController.index
GET    /apples       @controllers.ApplesController.home
GET    /bananas      @controllers.BananasController.home
GET    /buybananas   @controllers.BananasController.buy

Controller
@With(CheckUrl.class)
public static Result index() {
        return ok(index.render("Unable to resolve host."));
    }

检查网址
public class CheckUrl extends play.mvc.Action.Simple {

    public F.Promise<SimpleResult> call(Http.Context ctx) throws Throwable {

        String host = request().host();
        System.out.println("HOST IS "+host);

              if (host.equalsIgnoreCase("apples.com")) {

             return F.Promise.pure(redirect("/apples"));

        }else if (host.equalsIgnoreCase("bananas.com ")){

         return F.Promise.pure(redirect("/bananas"));

        }else if (host.equalsIgnoreCase("buy.bananas.com")){

         return F.Promise.pure(redirect("/buybananas"));
        }else{
          return delegate.call(ctx);
        }



}

我不知道这是否是这样做的好方法。我已经用 request().uri() 试过了但不是 request().host()这对我有用。也许这会有所帮助。

关于scala - Play Framework 2.3 中的域路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353301/

相关文章:

scala - 无法加载play.http.errorHandler-未调用自定义处理程序

scala - 如何使用 OverflowStrategy 打印流中删除的元素?

api - 编写处理异常的 Scala 方法签名的最佳方式

java - 使用数据预填写表单 Play Framework

scala - 游戏中的模拟对象[2.0]

java - 关于使用 Ebean 的 Play Framework 和 MySQL 的简单 CRUD 教程?

playframework - Play Framework 2.0.x AskTimeoutException

scala - 等价于 if (p(f(a), f(b)) a else b

linux - 如何在 Ubuntu 中更新 Scala 版本

java - 是否可以使用 geotools 读取 shapefile 而无需指定文件的 url?