【发布时间】:2020-10-23 02:08:55
【问题描述】:
是否可以使用 mod_rewrite 来解析托管在另一台服务器上的地址?
假设我想设置这个 URL:
http://www.myserver.com/myfolder/
要真正解决:
http://www.anotherserver.com/anotherfolder/
如果是这样,您能否提供一个 RewriteRule 示例?
【问题讨论】:
是否可以使用 mod_rewrite 来解析托管在另一台服务器上的地址?
假设我想设置这个 URL:
http://www.myserver.com/myfolder/
要真正解决:
http://www.anotherserver.com/anotherfolder/
如果是这样,您能否提供一个 RewriteRule 示例?
【问题讨论】:
您可以在mod_rewrite 规则中使用P flag 来获取mod_proxy 请求的替换URL:
RewriteEngine on
RewriteRule ^myfolder/$ http://other.example.com/anotherfolder/ [P]
现在,当客户端向您的服务器请求 /myfolder/ 时,它将请求 http://other.example.com/anotherfolder/ 并将该服务器的响应发送回客户端。
【讨论】:
不,隧道是不可能的,您必须为此使用 CGI 脚本。但是,您可以重定向:
RewriteRule ^(.*) http://new.example.com/$1
带或不带 [R] 标志,它会自动将用户重定向到新域。
编辑:显然可以使用mod_proxy 和[P] 标志来隧道请求。请参阅 Gumbo 的回答。
【讨论】:
嘿,我试过重写但没有用(只是在 localhost 中测试过)
我也觉得这个方法很简单
Redirect /myfolder external_url
【讨论】:
mod_rewrite,但它就像一个魅力。