【问题标题】:Apache 2.2 rewrite with proxyApache 2.2 用代理重写
【发布时间】:2017-03-16 16:46:03
【问题描述】:

在较旧的 Ubuntu (12.04) 上使用 Apache 2.2...

希望有一个代理到另一个域的路径(但保持浏览器中的 URL 不变)。由于 htaccess 中不允许使用代理内容,因此尝试了以下操作(假设不是 Apache 2.2,但可能是更高版本):

<VirtualHost *:80>
  ProxyRequests Off
  ProxyPreserveHost On

  SSLProxyEngine on

  <Proxy *>
    Allow from all
  </Proxy>

  ProxyPass /axis <some domain>
  ProxyPassReverse /axis <some domain>
</VirtualHost>

这有效,但在目标域重定向时无效。例如,如果 某个域 重定向到 /somepath,则结果不是指向 http://&lt;my domain&gt;/axis/somepath,而是未定义的 http:://&lt;my domain&gt;/somepath

问题是如何强制我域上的路径下的所有内容(例如/axis)与另一个域匹配?

【问题讨论】:

    标签: apache mod-rewrite mod-proxy vhosts


    【解决方案1】:

    应用程序应该了解用于访问它的 URL 结构,非常擅长推断它,或者使用精心设计的相对 URL(不是根相对),这样它本质上就无关紧要了。问题是内容必须包含公共 URL,否则您必须对所有内容进行后处理,这既困难又容易出错。

    尝试将&lt;some domain&gt; 站点的内容从根目录移动到axis 子目录。您可能需要更改一些内容,但至少 URL 结构是相同的。

    如果系统不是为从子目录运行而设计的,那么除了修复它创建的 URL 之外,您将别无(可靠的)选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2011-10-01
      • 2014-03-17
      • 2016-06-14
      • 2014-04-12
      • 2015-02-23
      • 2010-12-07
      相关资源
      最近更新 更多