【问题标题】:Redirect https://www.mydomain.com to https://mydomain.com in Play framework在 Play 框架中将 https://www.mydomain.com 重定向到 https://mydomain.com
【发布时间】:2012-01-14 08:04:13
【问题描述】:

我们正在为一个项目使用 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 吗?

【问题讨论】:

    标签: playframework


    【解决方案1】:

    我们整理好了。该解决方案在 dev 中有效,我们希望它在 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。

    【讨论】:

    • 如果请求包含参数怎么办?您将始终被重定向到根目录
    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 2023-03-18
    • 2014-10-15
    • 2017-10-01
    • 2020-09-11
    • 2017-04-02
    • 2016-09-24
    相关资源
    最近更新 更多