46

我以前从未设置过代理。我使用的是共享主机,所以要设置 Apache 指令,我需要使用 .htaccess。我可以使用 .htaccess 执行以下操作吗?有什么限制吗?

ProxyRequests Off
ProxyPass /img/ http://internal.example.com/img/
ProxyPass /app/ http://internal.example.com/app/

ProxyPassReverse / http://internal.example.com/
4

1 回答 1

47

您不能ProxyPass在 htaccess 文件中使用 a 。该文档说它仅适用于以下情况:

上下文:服务器配置、虚拟主机、目录

其中不包括 htaccess(你不能<Directory>在 htaccess 中有一个块)。但是,您可以使用 aProxyPassReverse在内部重写导致重定向的代理请求的 Location 字段。您只需要使用 mod_rewrite 的P标志来代理而不是ProxyPass. 所以像:

RewriteEngine On
RewriteRule ^/?img/(.*)$ http://internal.example.com/img/$1 [L,P]
RewriteRule ^/?app/(.*)$ http://internal.example.com/app/$1 [L,P]

ProxyPassReverse / http://internal.example.com/

为了清楚起见,您不能在 htaccess 文件中使用ProxyPass or ProxyPassReverse,但您可以使用ProxyPassReverse使用该P标志的 mod_rewrite 规则。

于 2012-10-10T04:39:39.097 回答