有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

tomcat java重定向301但浏览器未正确打开新url

我将旧域中的所有数据移动到新域。许多链接被谷歌编入索引,这对我们很重要,所以我想重定向301所有链接,如下所示:

my_domain.ir/Server?do=content&id=24

my_domain.com/Server?do=content&id=24

下面的代码是服务器代码。java,它是一个servlet

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {        
    System.out.println("_______________________________________________");

    String url = request.getRequestURL().toString() +"?"+ request.getQueryString();
    System.out.println(url);// http://my_domain.ir/Server?do=content&id=24
    url = url.replace(".ir", ".com");
    url = url.replace("localhost:9090", "mydomain.com");//to test from localhost
    System.out.println(url);//http://my_domain.com/Server?do=content&id=24
    response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
    response.setHeader("Location", url);
    response.setHeader( "Connection", "close" );
    System.out.println("_______________________________________________");
}

调用后,我可以看到http://my_domain.ir我可以看到301重定向代码,但地址栏中是“http://my_domain.com/Server”,并且浏览器未打开任何页面

我尝试将所有内容重定向到http://my_domain.com/index_test.html,但结果相同

对我们来说,保存我在谷歌的域名位置很重要,这个问题有害吗


共 (1) 个答案

  1. # 1 楼答案

    我只是查了一下,因为我记得这一点(大约10年前),但你可以更容易地重定向:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {        
        System.out.println("_______________________________________________");
    
        String url = request.getRequestURL().toString() +"?"+ request.getQueryString();
        System.out.println(url);// http://my_domain.ir/Server?do=content&id=24
        url = url.replace(".ir", ".com");
        url = url.replace("localhost:9090", "mydomain.com");//to test from localhost
        System.out.println(url);//http://my_domain.com/Server?do=content&id=24
        response.sendRedirect(url);
        System.out.println("_______________________________________________");
    }
    

    免责声明:我还没有检查你的URL重写是否正确