我目前遇到了使用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>
任何人都可以帮我解决上述问题
由于
答案 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>
一切都很适合我。