2009-08-17 169 views
6

我运行了Apache和Tomcat,并使用mod_jk来绑定它们。我有一个的Tomcat worker被称为“TC1”和下面的设置上我VirtualHostmod_jk与mod_rewrite冲突

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

这样的Tomcat服务分开的那些静态文件的所有请求。

现在我想用mod_rewrite和做一些很简单的比如:

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

重写动态浏览量在“/富”到“/酒吧”,但它并没有因为所有的网址工作由mod_rewrite处理不会最终成为mod_jk

我读过Apache Tomcat Connector documentation并尝试了所有JkOptions但没有任何改变。

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

mod_jkmod_rewrite加载顺序和声明顺序在URL处理中扮演什么角色吗?

感谢

回答

12

这是奇怪的,因为默认情况下RewriteRule发送一个客户端的重定向,所以客户应进行第二次请求/酒吧,应该用自己的JkMount捕获。您的访问日志显示是否显示/foo的请求以及/bar的请求?

试试这个规则来代替:

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

的“PT”的意思是“直通”,并且是重写bodge它允许你发生变异的URL原位,让其他模块获得一看,而不发送重定向。

+0

感谢您的回答。我会尝试并发布结果。请注意,我不希望客户端重定向,而是重写url。 – cherouvim 2009-08-17 19:31:22

+0

非常感谢! PT(passthrough)是我想要的! – cherouvim 2009-08-18 06:47:42