使用Tomcat重写URL无法正常工作

时间:2015-01-29 06:45:37

标签: apache tomcat configuration

我在tomcat(通过mod_jk)前面使用了apache 2.2.9,它在webapp下有一个ROOT文件夹和一些.html文件。

我默认配置URL重写:

<VirtualHost *:80>
    <IfModule mod_rewrite.c>
    RewriteLog /var/log/apache2/rewrite.log
    RewriteLogLevel 3
    </IfModule>
    ServerAdmin webmaster@localhost
    ServerName www.megamadz.com
    ServerAlias megamadz.com
    DocumentRoot /usr/tomcat/webapps
    JKMount /* ajp13_worker

    ...
    AllowOverride All

我将.htaccess放在webapps和ROOT下,但是rewrite.log有0输出,无论我在浏览器中输入什么,http://mydomain/about-us它说......不可用,它从不指向{{3} }

这是我的.htaccess文件:

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^about-us$              about-us.html    [NC,L]

1 个答案:

答案 0 :(得分:0)

你所尝试的东西永远不会奏效。 JKMount /* ajp13_worker表示所有请求都转发到Tomcat而不是由Apache处理。由于Apache不处理请求,因此它也不会处理.htaccess文件。

现在的情况是你应该在Tomcat中进行重写。如果这不是您想要做的,您应该将重写规则移到虚拟主机中,以便处理它们。

但是看起来你正在尝试重写静态文件,但是你有一个设置基本上每个东西都由Tomcat处理。也许您确实需要JKMount /someApp之类的东西,创建一个Tomcat只处理Web应用程序请求并且Apache提供静态文件的场景。