我已经运行了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_jk
和mod_rewrite
加载顺序和声明顺序在URL处理中是否起作用?谢谢
最佳答案
这很奇怪,因为默认情况下RewriteRule
发送客户端重定向,因此客户端应向/bar发出第二个请求,该请求应由JkMount
捕获。您的访问日志是否显示对/foo
的请求以及对/bar
的请求?
请尝试以下规则:
RewriteRule ^/foo$ /bar [PT,L]
“PT”的意思是“传递”,它是一个重写标记,可让您原位更改URL,并允许其他模块查看,而无需发送重定向。