将httpd ProxyPass与DirectoryIndex一起使用

时间:2016-10-13 17:36:41

标签: apache url-rewriting httpd.conf proxypass

如何同时使用ProxyPassDirectoryIndex

我有以下规则:

# 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

2 个答案:

答案 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]

这可能是一个粗略的方法。