我在 gae 上部署了一个网站。这个资源已经购买了一个域名,当然你可以去网站和标准域名类型app_id.appspot.com 加上这个也可以去那里和version_id.app_id.appspot.com。不仅如此,如果您输入 abrakadabra.app_id.appspot.com 获取默认版本。
所以谷歌机器人不知何故找到了我的版本1和2。对于搜索引擎优化不是很有帮助:(。加上所有机器人开始更频繁地访问该站点(增加负载)配额很快用完。也许有人已经遇到过这个问题,告诉我解决方案。
我在 gae 上部署了一个网站。这个资源已经购买了一个域名,当然你可以去网站和标准域名类型app_id.appspot.com 加上这个也可以去那里和version_id.app_id.appspot.com。不仅如此,如果您输入 abrakadabra.app_id.appspot.com 获取默认版本。
所以谷歌机器人不知何故找到了我的版本1和2。对于搜索引擎优化不是很有帮助:(。加上所有机器人开始更频繁地访问该站点(增加负载)配额很快用完。也许有人已经遇到过这个问题,告诉我解决方案。
要回答您的问题:
您或许可以在 Google 网站管理员工具中指定首选域。请参阅: http: //support.google.com/webmasters/bin/answer.py ?hl=en&safe=on&answer=44231
此外,也许您可以使用规范 URL 来告诉 Google(和其他搜索引擎)要索引哪个版本。请参阅: http: //support.google.com/webmasters/bin/answer.py ?hl=en&answer=139394&ctx=cb&src=cb&cbid=gh96oax614pa&cbrank=0
(请注意,StackOverflow 上有一个类似的问题: appspot.com url 出现在谷歌搜索结果中,而不是自定义域名中)
我现在的解决方案是:
public class VersionFilter implements Filter {
...
@Override
public void doFilter(ServletRequest request, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
String serverName = request.getServerName();
if (serverName.contains("appspot.com") && !UserBean.isAdmin()) {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
if (request.getParameter("login") != null) {
UserService userService = UserServiceFactory.getUserService();
httpResponse.sendRedirect(userService.createLoginURL("/"));
} else if (request.getParameter("logout") != null) {
UserService userService = UserServiceFactory.getUserService();
httpResponse.sendRedirect(userService.createLogoutURL("/"));
} else {
httpResponse.sendError(403);
}
}
filterChain.doFilter(request, servletResponse);
}
... }
最好的解决方案是在 url /robots.txt 上创建过滤器并发送版本主机文本,如下所示:
User-agent: *
Disallow: /*
谷歌爬虫不再出现在版本化主机上!:)