这似乎是一个超级基本的问题,但我很难找到一个简单的解决方案,所以感谢您在这方面的任何帮助和耐心:
我想将我的 Apache 代理服务器配置为重定向某些 URL,例如,将 www.olddomain.com 的 Web 浏览器 HTTP 请求传递给代理服务器,然后将请求路由到 www.newdomain.com,后者发送响应到代理服务器,然后将其传递回 Web 浏览器。
看起来很简单,但我不知道如何在 Apache 上实现这一点。我知道 Squid/Squirm 提供了这个功能,所以我猜我错过了一些非常基本的东西。我知道我可以使用 RewriteRule 动态修改 URL 并将其传递给代理服务器,但我实际上想做相反的事情,即代理服务器接收原始 URL,应用 RewriteRule,然后将 HTTP 请求转发给新的网址。
希望这是有道理的。提前感谢您的帮助。
从您对我之前回答的评论中,我了解到您正在使用 Apache 作为转发代理 (
ProxyRequests On
)。您可以使用mod_rewrite
代理通过特定的 URL。你可能在你的 Apache 配置中有这样的东西:
然后,您必须添加以下内容才能将所有请求代理传递
www.olddomain.com/foo
到www.newdomain.com/bar
:这是做什么的:
www.olddomain.com
,RewriteRule
将触发。/foo
.http://www.newdomain.com/bar/
mod_proxy
(P
)。L
)。示例结果:
www.olddomain.com/foo/test.html
.www.newdomain.com/bar/test.html
.www.olddomain.com/foo/test.html
.如果我理解正确,您可能想看看:mod_proxy与基于名称的虚拟主机相结合
这是一个小例子,说明这可能是什么样子。来自 www.olddomain.com 虚拟主机的所有请求都将从 www.newdomain.com 请求并由 apache 重写: