【发布时间】:2017-12-26 05:44:35
【问题描述】:
我有一个节点应用程序在端口 1234 上运行。因为我不希望端口号显示在任何地方,我的 Apache 中有一个 ProxyPass 规则:
<VirtualHost *:80>
ProxyPass /node http://example.com:1234
ProxyPassReverse /node http://example.com:1234
</VirtualHost>
它运行良好:当我在浏览器中输入http://example.com/node 时,会显示预期的页面。 当我也输入http://example.com:1234 时,但我不希望该 URL 显示在我的浏览器中。这就是为什么如果 URL 中有“1234”,我会放置一个 javascript 来更改 window.location ...
这不是一个好的解决方案,因为页面必须在被重定向之前加载,并且用户会看到端口号。我想知道是否可以使用 Apache 规则立即将 example.com:1234 重定向到 example.com/node。我搜索了所有文档,但解决方案并不明显......
【问题讨论】:
-
您应该做的是将您的节点应用程序设置为在 127.0.0.1 上侦听,这样
example.com:1234将仅从本地主机工作 - 即它对网站的任何外部访问者 -
是的,我明白了,但我没有提到用户在通过 SSO 登录后来到我的应用程序,SSO 将用户重定向到“:1234”主机。我无法改变这一点,因为我没有 SSO 的权限。
-
将节点应用移动到另一个端口;使用
Redirect / http://example.com/拥有另一个虚拟主机(*:1234) -
如果我这样做,当我启动我的节点应用程序时,它说端口已经在使用中。 :(
-
实际上@DusanBajic 你的答案是正确的。你能把它发布出来让我投票给你吗?