这似乎是一个超级基本的问题,但我很难跟踪一个简单的解决scheme,所以感谢我的任何帮助和耐心:
我想configuration我的Apache代理服务器redirect某些URL,例如,www.olddomain.com的Web浏览器HTTP请求传递给代理服务器,然后将请求路由到www.newdomain.com,该服务器发送响应到代理服务器,然后将其传递回networking浏览器。
似乎很简单,但我不知道如何在Apache上实现这一点。 我知道Squid / Squirm提供这个function,所以我猜测我错过了一些非常基本的东西。 我知道我可以使用RewriteRuledynamic修改URL并将其传递给代理服务器,但是我有效地想要做相反的事情,代理服务器接收原始URL,应用RewriteRule,然后将HTTP请求转发给新的URL。
希望是有道理的。 在此先感谢您的帮助。
从你对我以前的答复的评论我收集,你正在使用Apache作为转发代理(ProxyRequests上)。 你可以使用mod_rewrite代理通过特定的URL。
你可能在你的apacheconfiguration里有这样的东西:
ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Allow from xx.xx.xx.xx </Proxy>
然后,您必须添加以下内容,以便将来自www.olddomain.com/foo的所有请求代理传递到www.newdomain.com/bar
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ RewriteRule /foo(.*)$ http://www.newdomain.com/bar/$1 [P,L]
这是做什么的:
www.olddomain.com发出请求时,RewriteRule将会启动 示例结果:
如果我正确理解你,你可能想看看: mod_proxy结合基于名称的虚拟主机
这是一个可能看起来像什么的小例子。 http://www.olddomain.com虚拟主机的所有请求将从www.newdomain.com请求并由apache重写:
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.olddomain.com <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://www.newdomain.com/ ProxyPassReverse / http://www.newdomain.com/ ProxyPassReverseCookieDomain www.newdomain.com www.olddomain.com </VirtualHost>