Apache与JKMount和Alias

ven*_*een 1 apache

我目前在使用JKMount和Alias进行apache配置时遇到问题。

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

    JkMount /app1/*.jsp app1
    JkMount /app1/* app1
Run Code Online (Sandbox Code Playgroud)

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

如果网址类似于http://testapp.com/app1/capture/testImg.jpg,那么我必须从C:/capture/testImg.jpg提供图片。

为此,我使用了AliasMatch

AliasMatch /app1/capture/(.*)$ C:/capture/img/$1 
Run Code Online (Sandbox Code Playgroud)

这里的问题是我不能与JKMount一起使用AliasMatch。

如果我评论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>
Run Code Online (Sandbox Code Playgroud)

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

谢谢

ven*_*een 5

我已经阅读了Apache Tomcat文档。

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

当jk和别名/ 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>
Run Code Online (Sandbox Code Playgroud)

一切对我来说都很好。