我想重写 URL www.example.com 下的站点 example2.com/www,但我不希望将浏览器中的 URL 更改为 example2.com/www/。
因此在浏览器中输入http://www.example.com我将看到以下网站http://example2.com/www但在浏览器中它仍然是http://www.example.com
我尝试过类似的事情:
RewriteRule (.*) http://example.com/www [L]
我将其放在 www.example.com 的虚拟主机配置中,它可以工作,但需要改变 url。
有没有不同的方法可以以这种方式重写 http 和 https?
编辑...我正在使用 LiteSpeedBalancer,而 www.example.com 是虚拟主机,仅显示 example.com/www(因此 www.example.com 下没有比赛,该域名仅重写为 example.com/www)
这很复杂,首先我以 www.example.com 为例,将其重写为 example2.com/www,以指出它们是不同的虚拟主机。
答案1
一种解决方法是在控制面板中使用帧转发。
答案2
使用 mod_proxy 可以实现您所描述的内容,但正如其他人所评论的那样,您需要问自己“为什么?”。在 example2.com 上进行虚拟托管会简单得多
无论如何,你需要mod_proxy mod_proxy_http并且可能mod_proxy_html已加载模块
然后在你的 Apache 配置中输入类似下面的内容
# turn the general proxy off
ProxyRequests Off
# pass requests for / to the backend /www
ProxyPass / http://example2.com/www
# fix and redirect headers from the back end
ProxyPassReverse / http://example2.com/www
# fix any domains in cookies from the backend to the frontend.
ProxyPassReverseCookieDomain example2.com example.com
# fix any cookie paths form /www to the front end /
ProxyPassReverseCookiePath / /www
然后,如果后端站点上的 html 仍然设法恢复 /www,那么您可以打开蠕虫罐,加载 mod_proxy_html 并尝试:
ProxyHTMLEnable On
ProxyHTMLURLMap /www /
使用 mod_proxy_html 还可以做很多事情配置指南