0

我在 GAE/J 中有申请,我的申请网址在谷歌中被索引如下 -

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

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

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

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

请告知实现这一目标的最佳方法,如果您需要代码片段,请告诉我。

4

2 回答 2

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
}
于 2012-09-03T08:02:08.380 回答
0

您应该进行SEO 友好的重定向,使用 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());
于 2012-09-03T09:30:05.467 回答