带有ProxyPassReverse的Apache VirtualHost与htaccess优先级

时间:2018-09-05 15:52:09

标签: apache .htaccess mod-rewrite mod-proxy

我有一个Apache conf文件和一个VirtualHost条目。我需要让Apache充当基于URI的各种目标站点的反向代理。

示例:

<VirtualHost>
    RewriteCond       %{REQUEST_URI}    ^/URI1/(\S+)$
    RewriteRule       ^.*$              https://<PROXY1 IP>:443%{REQUEST_URI} [P]
    ProxyPassReverse  ^                 https://<PROXY1 IP>:443

    RewriteCond       %{REQUEST_URI}    ^/URI2/(\S+)$
    RewriteRule       ^.*$              https://<PROXY2 IP>:443%{REQUEST_URI} [P]
    ProxyPassReverse  ^                 https://<PROXY2 IP>:443
</VirtualHost>

这很好。这是问题所在。我需要此处理才能在很长的mod_rewrite规则列表的 end 中进行。理想情况下,我希望将所有这些额外的mod_rewrite规则放在.htaccess文件中,并使conf文件保持整洁。问题在于,无论我尝试了哪种继承设置,Apache都会首先在VirtualHost部分中处理mod_rewrite规则,基本上使htaccess文件无效。

我可以将代理mod_rewrite规则移到htaccess文件的末尾,但是我需要在这里运行多个ProxyPassReverse指令(并且这些指令不能在htaccess文件或<Directory>指令中)。

我是否只保留一个巨大的VirtualHost条目,其中包含所有规则,而代理规则位于底部?

非常感谢。

0 个答案:

没有答案