我正在尝试设置 Apache 反向代理,以便将请求代理到在 8080 上运行的另一个应用程序。但是,我希望直接为某些目录提供服务,而不是转发到代理。我想要的是:
http://本地主机/-> http://localhost:8080/myapp
http://localhost/images->/var/www/html/images
http://localhost/anything-else -> http://localhost:8080/myapp/anyhthing-else
我当前的 httpd.conf 是
ProxyRequests Off
ProxyTimeout 600
ProxyPreserveHost On
ProxyPass / http:// localhost:8080/
ProxyPassReverse / http:// localhost:8080/
RewriteEngine On
RewriteRule ^/(.*) http:// localhost:8080/VirtualHostBase/http/%{SERVER_NAME}:80/myapp/VirtualHostRoot/$1 [L,P]
我应该做什么配置才能使本地路径例外起作用?
谢谢你,塔尼娅
答案1
我找到了解决方案。
要排除 /myapp,我需要添加
ProxyPass /myapp !
作为第一个 ProxyPass 指令,排除应该先于一般规则。
我还需要补充
RewriteCond !^/myapp/(.*)
在 RewriteRule 之前将其从 RewriteRule 中排除