![Apache htaccess 在代理指令之后进行处理](https://linux22.com/image/723816/Apache%20htaccess%20%E5%9C%A8%E4%BB%A3%E7%90%86%E6%8C%87%E4%BB%A4%E4%B9%8B%E5%90%8E%E8%BF%9B%E8%A1%8C%E5%A4%84%E7%90%86.png)
我在 Linux 上运行 Apache 2.4。我有一个工作.htaccess
文件。
作为测试,我正在执行重定向/ws/xyz123
到https://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
上下文中使用它们。