【问题标题】:redirect to another domain, but keep the url [duplicate]重定向到另一个域,但保留 url [重复]
【发布时间】:2012-05-14 11:49:24
【问题描述】:

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

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

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

我不想简单地将页面物理移动到另一个虚拟主机,因为它是一个 wordpress 页面,这会很麻烦。

这可能吗?

【问题讨论】:

    标签: apache mod-rewrite


    【解决方案1】:

    两种选择:

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

      重写规则 /(.*)$ http://example2.com/$1 [P]

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

    【讨论】:

      【解决方案2】:

      是的,这是可能的。

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • iframe 实际上是一个绝妙的解决方案。与 apache 代理相比,它有什么缺点
        • 我能想到的第一件事是它可能与页面中的 javascript 交互不好,具体取决于您要执行的操作。您还可以在客户端使用 javascript 直接从 example1 加载内容。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-04
        • 2018-03-27
        • 2014-09-15
        • 1970-01-01
        • 2010-11-20
        • 2015-09-29
        • 2014-05-01
        相关资源
        最近更新 更多