【问题标题】:Redirect example.com to www.example.com in PlayFramework 1.2.x在 PlayFramework 1.2.x 中将 example.com 重定向到 www.example.com
【发布时间】:2015-04-14 16:52:46
【问题描述】:

我正在使用 PlayFramework 1.2.x

我想将我的网址 example.com 重定向到 www.example.com

我唯一能想到的就是在application.conf中设置它

 prod.application.baseUrl=http://www.example.com/

但这不会导致 mydomain.com/some-page 被重写为 www.mydomain.com/some-page

这在 PlayFramework 1.2.x 中是否可行?

附:我可以通过重定向到 www.example.com 使其适用于根 url,但我需要让它适用于所有其他页面,并且重定向到其他页面的特定 URL 并不实际。

编辑:将问题编辑为

【问题讨论】:

  • 我认为example.com=www.example.com
  • 为什么不直接在控制器中重定向 return redirect("url2"); 并且应该为您的应用程序预订两个域
  • @singhakash 好吧,我可以为根 url 实现它,但它是我需要让它工作的所有其他 url。我会更新问题。

标签: java redirect playframework url-rewriting


【解决方案1】:

您想将网址example.com 重定向到www.example.com

方法一:

控制器

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

CheckUrl.java

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("example.com")) {

             return F.Promise.pure(redirect("http://www.example.com"));

        }

}

因此,当用户每次在浏览器中点击 url 时,它将从控制器发送到 CheckUrl.java 并重定向到 wwwdot。这不是最干净的方法

方法 2:标准方法

Source1,Source2

【讨论】:

  • 我会尝试类似的东西,但我使用的是 1.2.x 而不是 2.x
猜你喜欢
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 2017-09-24
  • 2020-09-24
  • 1970-01-01
相关资源
最近更新 更多