2011-11-13 23 views
1

我的Spring应用程序部署到prod服务器(共享tomcat 5.5)将响应404错误(除/)的所有URL调用。经过艰苦工作3天,我发现:配置apache发送所有请求到tomcat

的问题是,在生产环境Tomcat是被 门前被Apache httpd的哪个不转发请求到Tomcat 的形式/ foobar的的网址(没有扩展名)。 Apache不会 知道如何处理这些URL,并尝试将它们作为静态文件从磁盘中提取出来 。

所以,我需要配置apache发送所有的请求到tomcat。我相信,这将需要更改.htaccess文件。我有以下位置的.htaccess文件:

/public_html/.htaccess 
/public_html/WEB-INF/.htaccess 

请帮我使用.htaccess内容来实现所需的目标。

回答

1

您应该直接在您的httpd.conf配置文件中配置代表您的Tomcat应用程序的URL的<Location>指令 - 或以适合您的发行版(或本地环境)配置的方式包含的相应文件。 (如果您不确定您的分发版本或本地环境是否使用某种机制来拆分配置文件,请在您的主Apache配置文件中查找include lines。)

如果您将<Location>指令放置在您的Tomcat安装在.htaccess文件中,该文件将在每个请求中重新加载和重新分析,这可能会对性能产生影响。如果将它放在主配置中,它将在服务器启动时(每次使用apachectlrestart选项重新加载配置时)读取并解析一次。