0

我在尝试将我的网站的根目录从mywebsite.com/mywebsite重写为www.mywebsite.com/mywebsite 时遇到问题。

问题与使用mod_proxy调用Tomcat有关

文件 proxy.conf

<ifmodule mod_proxy.c>
    ProxyRequests Off
    ProxyPreserveHost On

    <proxy *>
       AddDefaultCharset off
       Order deny,allow
       Allow from all
    </proxy>

    ProxyVia On 
    ProxyPass /mywebsite ajp://91.222.222.222:8009/mywebsite
    ProxyPassReverse /mywebsite ajp://91.222.222.222:8009/mywebsite

    <location miaplicacion>
        Order allow,deny
       Allow from all
    </location>
</ifmodule>

文件 .htaccess

RewriteCond %{HTTP_HOST} !^www.mywebsite.com [NC] 
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [NC,L,R=301]

关键是,如果我写mywebsite.com/something ,该规则就可以正常工作。在这种情况下,它被正确重定向到www.mywebsite.com/something

但是,似乎代理优先于重写规则中写入的内容。也就是说,当它找到 mywebsite.com/mywebsite 时,不是将其重写为 www.mywebsite.com/mywebsite 然后调用 Tomcat,而是直接调用它,而不接触 URL。

您知道在代理到 Tomcat 之前强制重写 URL 的任何方法吗?

4

1 回答 1

0

试试这个作为你的第一行:

RewriteCond %{HTTP_HOST} ^mywebsite.com$ [NC]
于 2012-10-08T19:36:18.297 回答