Apache与JKMount和Alias

时间:2012-09-05 01:05:53

标签: apache

我目前遇到了使用JKMount和Alias的apache配置问题。

我用JKMount挂载了我的应用程序

    JkMount /app1/*.jsp app1
    JkMount /app1/* app1

我的本​​地文件系统上有一些静态图像。

如果网址与http://testapp.com/app1/capture/testImg.jpg类似,那么我必须提供来自我的C:/capture / testImg.jpg的图像。

为此,我使用了AliasMatch

AliasMatch /app1/capture/(.*)$ C:/capture/img/$1 

这里的问题我无法使用AliasMatch与JKMount合并。

如果我评论JKMount部分,那么我可以访问图像。但是我的申请没有用。

如果我取消注释JKMount部分我的应用程序正在运行,但我无法访问图像。

这是我在httpd.conf中的配置

   NameVirtualHost testapp.com
   <VirtualHost testapp.com:80> 
        ServerName testapp.com
    DocumentRoot "Z:\TestApp\app1\src\main\webapp\public"
    AliasMatch /app1/capture/(.*)$ C:/capture/img/$1 
    #<Directory C:/capture/img/>
    #   Order Deny,Allow
    #   Allow from all
    #</Directory>
    RewriteEngine on   
        RewriteRule ^/(.*) http://testapp.com/$1 [R=301,L]
    JkMount /app1/*.jsp app1
        JkMount /app1/* app1


    <Directory  C:/capture/img/>
    Order Allow,Deny
    Allow from all
    </Directory>

       ErrorLog "z:\logs\apache_error_log"
       CustomLog "z:\logs\log_custom" combined
    </VirtualHost>

任何人都可以帮我解决上述问题

由于

1 个答案:

答案 0 :(得分:4)

我已经浏览过Apache Tomcat文档。

http://tomcat.apache.org/connectors-doc/webserver_howto/printer/apache.html

当jk和alias / userdir URL匹配时,您可以使用no-jk env var来修复mod_alias或mod_userdir指令的问题。

所以我的新httpd.config看起来像这样

NameVirtualHost testapp.com
<VirtualHost testapp.com:80> 
    ServerName testapp.com
    DocumentRoot "Z:\TestApp\app1\src\main\webapp\public"
    #AliasMatch /app1/capture/(.*)$ C:/capture/img/$1 

    RewriteEngine on   
    RewriteRule ^/(.*) http://testapp.com/$1 [R=301,L]
    SetEnvIf Request_URI "/app1/capture/*" no-jk
    Alias /app1/capture/ C:/capture/img/

    <Directory  C:/capture/img/>
        Order Allow,Deny
        Allow from all
    </Directory>


     JkMount /app1/*.jsp app1
     JkMount /app1/* app1

   ErrorLog "z:\logs\apache_error_log"
   CustomLog "z:\logs\log_custom" combined
</VirtualHost>

一切都很适合我。