ProxyPass|ProxyPassMatch 在位置中定义时不能有路径

Cha*_*ala 7 apache configuration proxypass

我尝试了这个问题的答案。 如何在 Apache 中合并多个 ProxyPass 指令? 但是当我启动 apache 时出现错误ProxyPass|ProxyPassMatch can not have a path when defined in a location.

我的 000-default.conf 有以下代码

<VirtualHost *:80>
include location1.conf
include location2.conf
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的位置1有,

<Location /web/?_escaped_fragment_=/>
ProxyPass        /phpmyadmin !
ProxyPass / http://localhost:8082/
ProxyPassReverse / http://localhost:8082/
</Location>
Run Code Online (Sandbox Code Playgroud)

我的位置2有,

<Location /web/#!/>
ProxyPass        /phpmyadmin !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</Location>
Run Code Online (Sandbox Code Playgroud)

hel*_*ete 7

类似地,正如您提到的问题中可以看到的,当嵌套在Clause下时,有必要删除ProxyPassandProxyPassReverse子句的第一个参数。<Location>

所以考虑像这样改变你的配置:

地点1

<Location /web/?_escaped_fragment_=/>
    ProxyPass /phpmyadmin !
    ProxyPass http://localhost:8082/          # <== Dropped '/'
    ProxyPassReverse http://localhost:8082/   # <== Dropped '/'
</Location>
Run Code Online (Sandbox Code Playgroud)

地点2

<Location /web/#!/>
    ProxyPass /phpmyadmin !
    ProxyPass http://localhost:8080/          # <== Dropped '/'
    ProxyPassReverse http://localhost:8080/   # <== Dropped '/'
</Location>
Run Code Online (Sandbox Code Playgroud)

这应该可以正常工作。

  • 不幸的是事实并非如此。它仍然抱怨“ProxyPass /phpmyadmin!” (4认同)