tomcat前面的apache和重定向无法正常工作

tomcat前面的apache和重定向无法正常工作,apache,.htaccess,tomcat,grails,Apache,.htaccess,Tomcat,Grails,我有一个运行在amazon linux服务器上的grails应用程序,我有一个tomcat,在前端添加了一个apache,以便将domain.com重定向到www.domain.com。在谷歌上搜索了很多之后,我可以让它工作,但后来我意识到,当我点击domain.com时,它被重定向到www.domain.com//(最后两个斜杠)。再次通过谷歌搜索,我可以在位于/etc/httpd/conf.d的tomcat.conf文件中使用以下配置: <VirtualHost *:80>

我有一个运行在amazon linux服务器上的grails应用程序,我有一个tomcat,在前端添加了一个apache,以便将domain.com重定向到www.domain.com。在谷歌上搜索了很多之后,我可以让它工作,但后来我意识到,当我点击domain.com时,它被重定向到www.domain.com//(最后两个斜杠)。再次通过谷歌搜索,我可以在位于/etc/httpd/conf.d的tomcat.conf文件中使用以下配置:

<VirtualHost *:80>
   ServerName www.domain.com
   ServerAlias domain.com
   ProxyRequests Off
   ProxyPreserveHost On

   ErrorLog /var/log/httpd/tomcat.error.log
   CustomLog /var/log/httpd/tomcat.log combined

   <Proxy *>
           Order deny,allow
           Allow from all
   </Proxy>

   ProxyPass / ajp://localhost:8009/
   ProxyPassReverse / ajp://localhost:8009/
   RewriteEngine On
   RewriteCond %{HTTP_HOST} !^www\. [NC]
   RewriteRule ^/(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
编辑2:我删除了从domain.com重定向到www.domain.com的行,我仍然存在这个问题,随机要求我下载一个文件,而不是显示在站点上,我可以在JS控制台中看到下一条消息: 解释为文档但使用MIME类型应用程序/八位字节流传输的资源:“domain.com”


编辑:只是为了澄清一下,我在这篇文章中将我的域名改成了一个通用的“域”

对于将domain.com重定向到www.domain.com来说,重写引擎有点过头了。这是我安装tomcat时使用的。。。您的ajp系列也很好:

<VirtualHost *:80>
    ServerName domain.com
    Redirect / http://www.domain.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.domain.com
    ProxyPass / http://www.domain.com:8080/ 
    ProxyPassReverse / http://www.domain.com:8080/ 
    ProxyPreserveHost On
    <Proxy *> 
        Order deny,allow 
        Allow from all 
    </Proxy> 
</VirtualHost>

ServerName域名.com
重定向/http://www.domain.com/
服务器名www.domain.com
ProxyPass/http://www.domain.com:8080/ 
ProxyPassReverse/http://www.domain.com:8080/ 
代理主机
命令拒绝,允许
通融

您是否尝试过清除浏览器缓存?是的,我认为这与缓存无关,错误是随机发生的。我不太确定这是tomcat的问题Apache是前端并在将请求传递给tomcat之前接收请求。任何重定向等都将由apache处理。但是,tomcat配置可能还有另一个问题。我不怎么使用tomcat,所以在那里帮不了什么忙。
<VirtualHost *:80>
    ServerName domain.com
    Redirect / http://www.domain.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.domain.com
    ProxyPass / http://www.domain.com:8080/ 
    ProxyPassReverse / http://www.domain.com:8080/ 
    ProxyPreserveHost On
    <Proxy *> 
        Order deny,allow 
        Allow from all 
    </Proxy> 
</VirtualHost>