-1

我正在设置一个应该打开另一个网站的链接。例如,如果浏览器打开www.foobar2.com,它应该打开www.foobar.com而不更改 URL。我发现它可以使用.htaccess文件来完成。目前,如果我打开www.foobar2.com,它会重定向到www.foobar.com但 URL 也会更改为www.foobar.com。但我希望那个 URL 不应该改变。我需要做什么?

我试过这个不起作用 -

RewriteCond %{HTTP_HOST} ^www.foobar2.com
RewriteRule ^(.*) http://www.foobar.com [P]

请帮我解决一下这个。谢谢 :)

4

1 回答 1

1

由于请求发送到的 http 主机始终是 URL 中显示的主机(出于显而易见的原因),您需要实现代理功能,这不能使用纯重写或重定向来完成。

apache http 服务器为此提供了一个代理模块,它既可以独立使用,也可以集成到重写模块中。但是,您想使用它,您需要注意模块实际上是先加载的。它由两个子模块组成,在这种情况下,核心代理模块和 proxy_http 模块。

ProxyPass现在您可以为要从其他主机获取的 URL实现指令:

ProxyRequests off
ProxyPass / https://www.foobar.com
ProxyPassReverse / https://www.foobar.com

(是的,这是off上面第一行中的一个)

此规则需要在 http 主机中实现www.foobar2.com。它将www.foobar.com为每个传入请求发出一个内部子请求(因为它掩盖了根(/)并将其收到的响应传递回最初请求的客户端。

于 2019-02-07T15:06:35.880 回答