在Play框架中将https://www.mydomain.com重定向到https://mydomain.com

时间:2012-01-12 23:43:49

标签: playframework

我们将Play 1.2.4用于项目。对于浏览“https://www.mydomain.com”的用户,我们希望将其重定向到“https://mydomain.com”。

一旦部署了我们的webapp,就不会有像Apache这样的前端Web服务器。它将全部在Play上运行。 (我们已经有了HTTPS工作。在Play中这很容易。)

在开发中进行测试时,我们可以将foo.localdomain和bar.localdomain添加到我们的/ etc / hosts文件中以模拟它,然后在生产中进行实际操作。

关于如何在纯Play环境中将www.mydomain.com重定向到mydomain.com的任何想法?

1 个答案:

答案 0 :(得分:1)

我们整理出来了。该解决方案适用于开发人员,我们希望它能在prod中正常工作。

我们在Controller类中添加了@Before方法,其工作方式如下:

@Before
public static void redirectIfNeeded() {
  String baseUrl = play.Play.configuration.getProperty("application.baseUrl");
  if (baseUrl.indexOf(request.domain) == -1) {
      redirect(baseUrl);
  }
}

简而言之,每次调用控制器方法时,我们都要确保调用域是mydomain.com(在application.baseUrl属性中的application.conf中指定)而不是www.mydomain.com。如果不是mydomain.com,请重定向到mydomain.com。