我们将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的任何想法?
答案 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。