如何同时使用ProxyPass
和DirectoryIndex
?
我有以下规则:
# Index
DirectoryIndex index.html
# Service Endpoint
ProxyPass /endpointA http://127.0.0.1:wxyz/
ProxyPassReverse /endpointA http://127.0.0.1:wxyz/
# Root Endpoint
ProxyPass / http://127.0.0.1:8080/static/
ProxyPassReverse / http://127.0.0.1:8080/static/
预期的行为是,当用户在/
点击计算机时,应该将其提供给127.0.0.1:8080/static/index.html
但是,我从/static/
端点获得了404,因为看起来没有尝试加载的默认页面;如果我点击
/index.html
将我转到127.0.0.1:8080/static/index.html
如何让ProxyPass和DirectoryIndex同时工作,或者其他一些配置组合,这样当用户只需点击
/
时,它们就会被路由到127.0.0.1:8080/static/index.html
而不只是127.0.0.1:8080/static
?
答案 0 :(得分:2)
问题是DirectoryIndex将不会被使用,因为服务器已经与ProxyPass /匹配,因此它已经被传递到另一台服务器。
您应该在后端服务器上设置DirectoryIndex。即8080端口上的那个。
答案 1 :(得分:0)
我已经测试过几种方法,而且现在似乎只对我提出相同结果的那种方法似乎是在使用mod_rewrite:
RewriteEngine on
RewriteRule ^/$ http://127.0.0.1:8080/static/index.html [P,L]
然后你可以添加其余的:
RewriteRule ^/(.+) http://127.0.0.1:8080/static/$1 [P,L]
这可能是一个粗略的方法。