我使用Apache httpd
VirtualHost
设置
我正在做一些ProxyPass
和ProxyPassReverse
,因此我可以将呼叫重定向到本地服务器。
我想要的是能够使用apache服务器上的文件模拟某些端点(如果存在)。
例如,我有端点
http://localhost:8080/myapp/myendpoint
现在我跑的时候
http://localhost/myapp/myendpoint
我的VirtualHost
安装程序的apache会将调用重定向到我的本地服务器
现在我可以说我在{apache main dir}/htdocs/myapp/
中放了一个名为myendpoint
的文件。
如果我在Location
调用
ProxyPass
代码VirtualHost
http://localhost/myapp/myendpoint
返回htdocs中文件的结果。但是如果我在配置中留下上面的Location
标记,它会忽略该文件并转到服务器。
如何在执行proxypass之前配置Apache Web Server
以优先考虑文件?
答案 0 :(得分:0)
而不是
ProxyPass /localhost/myapp/ http://localhost:8080/localhost/myapp/
ProxyPassReverse /localhost/myapp/ http://localhost:8080/localhost/myapp/
您可以尝试使用
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /localhost/myapp/ http://localhost:8080%{REQUEST_URI} [P]
ProxyPassReverse /localhost/myapp/ http://localhost:8080/localhost/myapp/
(http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p,注意效果警告)