GAE / J - 我如何实现这种重定向?

时间:2012-09-03 04:59:23

标签: google-app-engine

我在GAE / J中有应用程序,我的应用程序url在谷歌索引如下 -

http://myapp.appspot.com/view/121200/this-is-test/

每当用户点击此网址时,我想将用户重定向到我的自定义域,即请求应重定向到..

http://www.mydomain.com/view/121200/this-is-test/

/ view是映射的servlet,它在用户点击上面的url时获得控制权,所以我不确定我是否可以通过检测req.getServerName()来实现重定向,然后如果ServerName是“myapp.appspot.com”重定向到“ www.mydomain.com“

请告知实现此目的的最佳方法,如果您需要代码段,请告诉我们。

2 个答案:

答案 0 :(得分:0)

你能不能

resp.sendRedirect("http://www.mydomain.com/view/121200/this-is-test/");

如果你想测试你是否在AppEngine上运行,请尝试在try / catch块中使用AppEngine类。

try {
  if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
      resp.sendRedirect("http://www.mydomain.com/view/121200/this-is-test/");
  } else {
      // running on dev server
  }
}
catch (Exception e) {
    // not running on appengine
}

答案 1 :(得分:0)

你应该SEO-friendly redirects,HTTP 307而不是HTTP 301。

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
// note this does not include query parameters, i.e. ?a=123
response.setHeader("Location", "http://www.mydomain.com"+.getRequestURI());