模仿重写规则,这将使//domain1.com/anypagename.php?key=value
重定向到//domain1.com/anypagename.php?key=value
,因为 domain1.com 和 domain2.com 驻留在不同的主机上?常规的 mod-rewrite 不允许这样做,但也许重写规则的组合使所有内容都指向同一个文件并让该文件转发它,可以模仿这一点吗?
我想这样做的原因是,domain1 是一个大域中一个受信任的子域,所以我们希望出于营销目的保留它,但我们不能更改 DNS 记录,并且相关的托管服务非常糟糕,我们希望实际网站在我们自己的服务器上运行(domain2.com 是我们控制下的常规域(。
使用.htaccess、PHP 等的方法都很好,但重要的是,对域 1 上的任意页面(使用任意 ?key=val&key2=val2 参数(的 GET 和 POST 请求在域 2 上得到正确处理,并像它们实际上是域 1 上的常规页面一样显示。
我没有尝试过这个,但我想到了P|proxy
标志
例如,如果您希望所有图像请求都由后端图像服务器处理,则可以执行以下操作:
...
在您的情况下,当domain1.com
和domain2.com
设置相同时,这可能是
RewriteRule ^ http://domain2.com%{REQUEST_URI} [P]
但是,还要注意
<小时 />性能警告
使用此标志会触发mod_proxy的使用,而不处理持久连接。这意味着如果您使用ProxyPass或ProxyPassMatch进行设置,则代理的性能会更好
所以ProxyPass
可能是更好的选择
ProxyPass / http://domain2.com
但是这个也有一个缺点,你不能在.htaccess文件中使用它。仅当您有权访问主主机配置或虚拟主机配置时,此操作才有效。