我之前从未设置代理。我正在使用共享主机,所以要设置Apache指令,我需要使用.htaccess。我可以使用.htaccess做下面的事吗?有任何限制吗?
ProxyRequests Off
ProxyPass /img/ http://internal.example.com/img/
ProxyPass /app/ http://internal.example.com/app/
ProxyPassReverse / http://internal.example.com/
答案 0 :(得分:38)
You cannot use a ProxyPass
in an htaccess file。文档说它仅适用于上下文:
上下文:服务器配置,虚拟主机,目录
不包括htaccess(你不能在htaccess中拥有<Directory>
块。但是,您可以使用ProxyPassReverse
在内部重写导致重定向的代理请求的位置字段。您只需要使用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
或 ProxyPassReverse
,但可以使用ProxyPassReverse
使用mod_rewrite规则,使用P
标志。