部署到prod服务器的我的Spring应用程序(共享tomcat 5.5)会响应所有带有404错误的URL调用(除了/)。经过3天的努力,我发现:
问题是在tomcat的生产环境中 前面是一个apache httpd,它没有将请求转发给tomcat 对于形式/ foobar形式的网址(没有扩展名)。 Apache没有 知道如何处理这些URL并尝试将它们作为静态服务 来自磁盘的文件。
所以,我需要配置apache将所有请求发送到tomcat。我相信,这需要更改.htaccess文件。我在以下位置有.htaccess文件:
/public_html/.htaccess
/public_html/WEB-INF/.htaccess
请帮助我.htaccess内容以达到预期目标。
答案 0 :(得分:1)
您应该直接在httpd.conf
配置文件中为代表Tomcat应用程序的URL配置<Location>
指令,或者以适合您的发行版的方式包含相应的文件(或本地环境)配置。 (如果您不确定您的发行版或本地环境是否使用某种机制来拆分配置文件,请在主Apache配置文件中查找include
lines。)
如果将Tomcat安装的<Location>
指令放在.htaccess
文件中,则会在每个请求上重新加载和重新解析该文件,这会对性能产生影响。如果将它放在主配置中,它将在服务器启动时读取并解析一次(每次使用apachectl
restart
选项重新加载配置时)。