您的配置将取决于您要使用的品牌Java EE服务器。 Apache Tomcat与Apache webserver具有非常好的AJP集成,所以这就是我将在这个示例配置中使用的。
你写道你想在Apache中做URL重映射。我强烈建议不要这样做,因为这会很难在应用程序中动态生成URL。您可以更好地使用Web框架的URL映射功能,以保持对该框架的链接生成支持。
我对Struts并不熟悉,但如果它不支持这个基本功能,我建议您切换到Stripes framework或更复杂的Spring MVC框架。你进一步写你想使用JSP,所以我也建议你使用MVC pattern所有这些框架的支持。这意味着您将URL映射到动作/控制器对象,而不是直接映射到JSP文件。
下面是一个例子的.htaccess配置,将通过所有传入的URL为此在.action
到Java EE服务器。 URL的传递与请求的URL完全相同,包括它们的(可选)参数。确保端口是Java EE服务器的AJP侦听器端口(或者将其更改为您已配置的端口)。
# Example .htaccess
#
# Please make sure 8009 is the port number of your Java EE server
RewriteEngine On
RewriteBase/
RewriteRule ^(.*\.action)$ ajp://127.0.0.1:8009/$1 [P,QSA,L]
另外请确保您已正确配置Apache。例如,你需要配置正确的模块,这些都是我已经被启用的(虽然你可能并不需要所有的人):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
答案在哪里? – 2010-12-14 14:07:40
我在httpd.conf中启用了它们。但是,我将把.htaccess文件放在哪里以及如何将端口配置为8009? – kamaci 2010-12-16 19:18:18
您放置在Apache Web服务器网站目录根目录下的.htaccess(不在WEB-INF!中)。端口8009是默认端口号(否则将其配置在conf/server.xml中)。如果它不在同一台服务器上,则可能还需要在防火墙上打开此端口。 – Kdeveloper 2010-12-16 21:24:18