Apache htaccess 在代理指令之后进行处理

Apache htaccess 在代理指令之后进行处理

我在 Linux 上运行 Apache 2.4。我有一个工作.htaccess文件。

作为测试,我正在执行重定向/ws/xyz123https://www.google.com

因此我提出请求http://example.com/ws/xyz123并且被正确重定向到谷歌。

当我为目录添加反向代理时,出现了/ws以下问题:

ProxyPass        /ws http://192.168.25.2:7003/ws retry=0
ProxyPassReverse /ws http://192.168.25.2:7003/ws

代理工作正常,但.htaccess现在被忽略了。如果我注释掉代理行,它又.htaccess可以正常工作了。我需要两者都能正常工作。有没有办法让.htaccess代理正常工作。

答案1

ProxyPass /ws http://192.168.25.2:7003/ws只是一个替代语法 为了ProxyPass, 相当于

<Location "/ws">
    ProxyPass "http://192.168.25.2:7003/ws"
</Location>

当您在里面使用 mod_proxy 时<Location>,Apache 从不查看目录(具有相对于 的相同路径DocumentRoot),从而省略文件中的所有指令.htaccess

您应该将指令移至服务器配置,即在<Location><VirtualHost>上下文中而不是.htaccess上下文中使用它们。

相关内容