我在尝试将我的网站的根目录从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 的任何方法吗?