N00b 问题。我有一个网址
http://myserver.com/game
并想调用内部资源
http://localhost:5732/
我试过了:
AllowCONNECT 5732
ProxyPass /game/ http://localhost:5732/ nocanon
ProxyPassReverse /game/ http://localhost:5732/
但是返回的 HTML 包含没有得到 /game/ 前缀的链接,并且 JS 和 CSS 损坏了。所以我尝试了:
RewriteEngine On
RewriteRule ^/game(.*) http://localhost:5732$1
但这会向浏览器发送重定向(当然不起作用)。
我错了什么?我的目标是:
http://myserver/game --> http://localhost:5732/
非常感谢帮助
如果你的 Apache 版本足够新(2.4+),你可以试试mod_proxy_html
对于旧版本的 apache,您可以尝试使用mod_substitute。但是,这需要您手动编写正则表达式。这可能是一个起点:
当然,确切的配置将取决于您当前从游戏服务器获得的输出。
您使用 ProxyPass 和 ProxyPassReverse 所做的第一个版本是执行您想要的操作的最常用方法。问题是无论你在 localhost:5732 上运行什么,它都会创建将被发回的 HTML——它不知道它不叫 localhost:5732。您的 proxypass 不会更改通过的页面,所以如果您的游戏包含所有错误链接,您将看到这些内容。
因此,要使其正常运行,您需要重新配置您的游戏,以便它知道将其链接等显示为 your.server/game 而不是 localhost.5732。