用于Apache的rewriterule做reverseeproxy

时间:2014-08-08 10:12:51

标签: php apache .htaccess proxy

我正在使用公共DNS www.siteA.com运行我的Apache服务器。我正在托管一个内部网站www.siteB.com

我想在我的服务器的.htaccess中重写规则,以便在www.siteA.com/getData/mydata.php请求到达时,它会将此请求代理到www.siteB.com/getData/mydata.php

我在siteA .htaccess中写了这条规则:

RewriteCond %{REQUEST_URI} ^/(getData.*)
RewriteRule (.*) http://www.siteB.com/$1 [P]

但我收到服务器内部错误。可能的原因是什么。我怎样才能实现这个代理呢?

我启用了proxy_module和proxy_http_module。我是否需要编写其他任何内容才能使代理工作?

由于 K2G

1 个答案:

答案 0 :(得分:0)

您可以通过几种方式执行此操作,或者尝试使用RewriteRule:

RewriteEngine On
RewriteBase /
RewriteRule ^(getData\/.*) http://www.siteB.com/$1 [P]

或者您可以使用ProxyPass

ProxyPass /getData http://www.siteB.com/getData

请注意,这适用于getData之后的任何内容,例如它会匹配getData/mydata.phpgetData/some/other/path/file.php