mod_jk与mod_rewrite冲突

时间:2009-08-17 18:38:13

标签: apache tomcat mod-rewrite mod-jk

我已经运行了Apache和Tomcat,并使用mod_jk来绑定它们。我有一个名为“tc1”的Tomcat工作者,以及VirtualHost上的以下设置:

JkMount   /* tc1
JkUnMount /*.png tc1
JkUnMount /*.gif tc1
JkUnMount /*.css tc1
JkUnMount /*.js tc1

这样,Tomcat可以为静态文件提供所有请求。

现在我想使用mod_rewrite并做一些非常简单的事情,例如:

RewriteEngine On
RewriteRule ^/foo$ /bar [L]

将“/ foo”的动态网页浏览重写为“/ bar”,但它不起作用,因为mod_rewrite处理的所有网址都不会以mod_jk结尾。

我已阅读Apache Tomcat Connector documentation并尝试了所有JkOptions但未发生任何变化。

有谁知道如何解决这个问题?

mod_jkmod_rewrite加载顺序和声明排序是否在URL处理中起任何作用?

感谢

1 个答案:

答案 0 :(得分:12)

这很奇怪,因为默认情况下RewriteRule会发送客户端重定向,因此客户端应该向/ bar发出第二个请求,应该由JkMount捕获。您的访问日志显示是否显示/foo的请求以及/bar的请求?

请尝试使用此规则:

RewriteRule ^/foo$ /bar [PT,L]

“PT”表示“传递”,并且是一个重写版本,允许您在原位改变URL并让其他模块查看,而不发送重定向。