两个域或子域之间的通信没有url重写

时间:2016-01-22 13:10:42

标签: php apache .htaccess magento laravel-5.1

我有两台服务器。例如,我们称其为域名为www.server-a.com的SERVER-A,域名为www.server-b.com的SERVER-B。我的代码库是用magento和laravel编写的。

现在我的要求是,当我访问www.server-a.com/example时,它实际上从www.server-b.com/example呈现页面而不重写URL。

重定向是一个不错的选择,但由于我不能阻止当前的URL,因为很多seo与它有关,所以我想创建一个备用选项。

我为这种沟通检查了很多选项,但从某些或其他角度来看,所有选项似乎都不完整。 选中的选项是:

  1. 通过IFRAME加载外部页面。
  2. 使用php fopen(www.server-b.com)。
  3. 使用jsonp或document.domain进行CORS通信。
  4. 在两个服务器之间实现第三层的想法允许它们通过自身进行内部通信(在node.js等的帮助下 - >仍然试图弄清楚我可以在哪里使用它。) 等
  5. 但他们都没有给我我需要的解决方案。他们真的是一种方式,我只需在网址中输入www.server-a.com/example,加载的页面实际上来自www.server-b.com/example而不重写网址或让用户知道他有离开了他已登陆的原址。

    注意: - 在这种情况下,我是两台服务器的所有者。此外,可以根据需要将单独的域更改为子域。请随意对基本配置进行任何调整以达到要求。

1 个答案:

答案 0 :(得分:0)

Mod代理

在服务器A apache config

ProxyPass /example http://www.server-b.com/example
ProxyPassReverse /example http://www.server-a.com/example

第一行:server-a / example上的每个请求都将重定向到http://www.server-b.com/example 第二行:当server-b回答请求时,网址节目将为http://www.server-a.com/example

不要忘记您需要在apache上安装并启用mod_proxy。