我已经运行了Apache和Tomcat,并使用mod_jk绑定(bind)了它们。我有一个名为“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处理的所有URL都不会最终变成mod_jk

我已经阅读了Apache Tomcat Connector documentation并尝试了所有的JkOptions,但没有任何改变。

有谁知道如何解决这个问题?
mod_jkmod_rewrite加载顺序和声明顺序在URL处理中是否起作用?

谢谢

最佳答案

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

请尝试以下规则:

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

“PT”的意思是“传递”,它是一个重写标记,可让您原位更改URL,并允许其他模块查看,而无需发送重定向。

09-04 04:09