首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Play 2.0.x永久重定向

使用Play 2.0.x永久重定向
EN

Stack Overflow用户
提问于 2012-11-30 02:59:14
回答 2查看 1.9K关注 0票数 3

我想知道如何在Play framework 2.0.x中为子域做一个永久重定向301。例如: www.example.com/*重定向到example.com/*。以前有人试过这个吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-30 06:06:42

Global object将允许您intercept the request通。由于显而易见的原因,您应该使用GET请求(即,用于搜索引擎优化的目的),但其他,如POST,PUT等应该在您的视图中从一开始就正确创建。

另一方面,如果它只是一些为生活生产提供普通HTML页面的应用程序,考虑在它前面使用一些HTTP服务器-那么你可以通过一些重写规则来完成这项工作。

代码语言:javascript
运行
复制
import play.GlobalSettings;
import play.mvc.Action;
import play.mvc.Http;
import play.mvc.Result;

import java.lang.reflect.Method;

public class Global extends GlobalSettings {

    @Override
    public Action onRequest(final Http.Request request, Method method) {
        if ("GET".equals(request.method()) && "www.example.com".equals(request.host())) {
            return new Action.Simple() {
                public Result call(Http.Context ctx) throws Throwable {
                    return movedPermanently("http://example.com" + request.path());
                }
            };
        }
        return super.onRequest(request, method);
    }
}
票数 8
EN

Stack Overflow用户

发布于 2012-11-30 04:09:34

在conf/routes文件中

代码语言:javascript
运行
复制
GET /      controllers.Application.index(path = "")
GET /*path controllers.Application.index(path)

应用程序/控制器/Application.scala中

代码语言:javascript
运行
复制
object Application extends Controller {
  def index(path: String) = Action {
    Redirect("http://example.com/" + path, status = MOVED_PERMANENTLY)
  }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13632778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档