重定向到另一个域,但保留该URL

时间:2012-05-04 23:06:44

标签: apache mod-rewrite

我有2个虚拟主机:www.example1.com和www.example2.com

我在www.example1.com/page.html上有一个页面

我希望此页面可以在其他域中访问,这意味着我希望人们能够访问www.example2.com/page.html并查看实际位于其他vhost上的该页面。但URL必须显示www.example2.com

我不想简单地将页面移动到另一个vhost,因为它是一个wordpress页面,这将是一个巨大的麻烦。

这可能吗?

3 个答案:

答案 0 :(得分:1)

是的,这是可能的。

我建议使用反向代理。像NGinX这样的软件做得很好,当然还有apache(我记得mod_proxy)。

无论如何,这种方法的缺点是你的服务器(在www.example2.com上)会从example1请求页面并通过它自己发送,而不是直接从example1发送。

顺便说一下 - 这种技术也用于负载平衡。

编辑#1:
在nginx中,它被称为ngx_http_upstream_module

编辑#2:
grahaminn是正确的,但我的方法“正确”显示网址 - 而不是一个固定的网址,这会产生问题,例如,为特定网页添加书签。

答案 1 :(得分:1)

两个选项:

  1. 使用Apache ProxyPass:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass
  2. 使用[P]标志重写(需要安装mod_proxy)

    RewriteRule /(.*)$ http://example2.com/ $ 1 [P]

  3. http://httpd.apache.org/docs/2.4/rewrite/flags.html

答案 2 :(得分:0)

您可以使用javascript或iframe从example2.com提供的页面来加载example1.com中的内容