games.example.org www.example.org 等.. 我想
如果有人访问www.example.org/games/
我想在浏览器中显示www.example.org/games/虚拟但实际上它的文件将托管在games.example.org服务器中?
怎么样?
答案 0 :(得分:4)
纯mod_rewrite规则是不够的,因为它们还需要mod_proxy以使子请求正常工作。特别是如果您希望在回送页面时自动重写所有绝对链接。如果您具有对Apache的完全访问权限,则可以在www.example.org域的虚拟主机部分中使用此代码:
<Location /games>
ProxyPassReverse http://games.example.org
ProxyPassReverse http://games.example.org:80
RewriteEngine On
RewriteRule games(.*)$ http://games.example.org/$1 [QSA,P,L]
</Location>
最后一个RewriteRule实际上是你需要的,但除非你也可以加载mod_proxy,否则“P”标志可能不会起作用。确保使用限制性最强的设置加载mod_proxy,并通过ProxyPass指令允许代理请求。
同样,ProxyPassReverse也无法在.htaccess中使用。它必须在Apache vhost配置中。
希望有所帮助!