可以模仿跨域mod重写规则吗?

时间:2017-03-25 14:34:50

标签: php apache .htaccess mod-rewrite cross-domain

是否可以模仿重写规则,这会使//domain1.com/anypagename.php?key=value重定向到//domain1.com/anypagename.php?key=value,因为domain1.com和domain2.com位于不同的主机上?常规的mod-rewrite不允许这样做,但也许是重写规则的组合,使得所有内容都指向同一个文件并让该文件转发它,可以模仿这个吗?

我之所以这样做是因为domain1是大型域名的一个值得信赖的子域名,因此我们希望将其保留用于营销目的,但我们无法更改DNS记录,并且相关的托管服务非常糟糕我们希望实际网站在我们自己的服务器上运行(而domain2.com是我们控制下的常规域)。

使用.htaccess,PHP等的方法都很好,但是对于domain1上的任意页面(具有任意?key = val& key2 = val2参数)的GET和POST请求都在domain2上正确处理并显示好像它们实际上是domain1上的常规页面。

1 个答案:

答案 0 :(得分:1)

我没试过这个,但想到了P|proxy标志

  

例如,如果您希望后端图像服务器处理所有图像请求,您可以执行以下操作:
  ...

在您的情况下,当domain1.comdomain2.com设置相同时,可以

RewriteRule ^ http://domain2.com%{REQUEST_URI} [P]

但是,请注意

  

效果警告

     

使用此标志会触发mod_proxy的使用,而不会处理持久连接。这意味着如果使用ProxyPass或ProxyPassMatch

进行设置,代理的性能会更好

所以ProxyPass可能是更好的选择

ProxyPass / http://domain2.com

但是这个也有缺点,你不能在.htaccess文件中使用它。如果您可以访问主要或虚拟主机配置,则此方法仅适用。