Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Grails应用程序-将非www版本重定向到网站的www版本_Java_Tomcat_Grails_Redirect - Fatal编程技术网

Java Grails应用程序-将非www版本重定向到网站的www版本

Java Grails应用程序-将非www版本重定向到网站的www版本,java,tomcat,grails,redirect,Java,Tomcat,Grails,Redirect,我们的Grails应用程序部署在VPS上,但www和非www版本是 不一样。实际上有两个站点,即浏览器中有两个cookie,每个版本一个,因此登录非www版本的用户不会登录www版本 在Grails中,将非www版本指向www版本的最佳方式是什么?我们是 使用Tomcat作为应用服务器 我想创建一个Grails过滤器,将所有非www url更改为附加www的同一url,并执行永久重定向。但我不确定这是否是一个好办法。我们在Tomcat前面没有Apache服务器,所以不能使用它的url重写机制 谢

我们的Grails应用程序部署在VPS上,但www和非www版本是 不一样。实际上有两个站点,即浏览器中有两个cookie,每个版本一个,因此登录非www版本的用户不会登录www版本

在Grails中,将非www版本指向www版本的最佳方式是什么?我们是 使用Tomcat作为应用服务器

我想创建一个Grails过滤器,将所有非www url更改为附加www的同一url,并执行永久重定向。但我不确定这是否是一个好办法。我们在Tomcat前面没有Apache服务器,所以不能使用它的url重写机制


谢谢。

如果您的Tomcat前面没有Apache服务器,您可以使用。一个类似Apache但直接与Tomcat(和其他web应用服务器)一起执行URL重写的工具。

您有权访问Tomcat的主配置吗?Tomcat可以做虚拟主机,因此您可以使用一个简单的webapp设置一个单独的虚拟主机来执行重定向

conf/server.xml


非www-webapps/ROOT/WEB-INF/WEB.xml


重定向到WW
/WEB-INF/redirect.jsp
重定向到WW
/*
非www-webapps/ROOT/WEB-INF/redirect.jsp

<% response.sendRedirect("http://www.example.com" + request.getRequestURI() +
      (request.getQueryString() == null
          ? ""
          : ("?" + request.getQueryString())
      )); %>

或者,如果您想要301而不是302重定向

<% response.setStatus(301);
   response.setHeader("Location", "http://www.example.com" + request.getRequestURI() +
      (request.getQueryString() == null
          ? ""
          : ("?" + request.getQueryString())
      ));
   response.setHeader("Connection", "close"); %>


+1因为此解决方案节省了我的时间。但是我的SEO工程师看起来很伤心,因为浏览器说它是302,而不是301-你能解释一下用这个解决方案301而不是302是否可行吗?是吗-jsp代码现在看起来像这样