【问题标题】:VirtualHost not redirecting虚拟主机不重定向
【发布时间】:2019-04-16 08:36:11
【问题描述】:

我正在尝试使用VirtualHosthttp://eamondev.com:3000 重定向到https://omniatm.eamondev.com。我正在使用nodehttp://eamondev.com:3000 提供网站服务。我正在使用vhost 和这样的节点:

app.use(vhost('omniatm.eamondev.com', express.static('/')));

我从未使用过vhost,我花了一段时间才弄清楚这一点,而不必像我在处理多个站点时那样拆分所有代码(当我不是时),所以我不确定如果这正是 Apache 重定向的工作方式。

在我的 apache conf 文件中,我有:

<VirtualHost *:80>
ServerName omniatm.eamondev.com
ProxyPreserveHost on
ProxyPass / http://localhost:3000/
</VirtualHost>

我也在 VPS 上使用 WHM,我不确定这是否相关,但 ServerName(带有协议,我在浏览器中输入的内容)需要是 https://omniatm.eamondev.com

我无法在我的服务器的端口 80 上提供 node(然后重定向到子域),因为我的主站点 (http://eamondev.com) 正在端口 80 上运行。

我已经参考了大多数关于此的 stackoverflow 问题,但没有任何效果。我应该提一下(虽然我不确定它到底是如何相关的,我只是在我查看的一个 stackoverflow 问题中看到它),我的托管支持(bluehost)使用WHM 使用通配符@987654342 进行设置@证书制作omniatm.eamondev.com子域https

如何使用apache(或vhost)将http://eamondev.com:3000 重定向到https://omniatm.eamondev.com

【问题讨论】:

    标签: node.js apache redirect port virtualhost


    【解决方案1】:

    问题中给出的代理传递不会进行任何重定向,而是会保留 URL 并代理来自其他地方的内容。在 Apache 配置中,我们有一个重定向选项,在下面的示例中,我们正在检查主机并基于它发出重定向到所需 URL

    <VirtualHost *:80>
        ServerName omniatm.eamondev.com
        Redirect / https://omniatm.eamondev.com
        <If "%{HTTP_HOST} != 'eamondev.com:3000'">
         Redirect "^/?(.*)"  "https://omniatm.eamondev.com/$1"
       </If>
    </VirtualHost>
    

    【讨论】:

    • 请添加一些细节描述,以便任何人一眼就能理解您的答案。
    • 感谢@jeevan,目前正忙于另一个项目,我会尽快尝试并奖励积分
    猜你喜欢
    • 2012-01-01
    • 2011-10-24
    • 2012-10-30
    • 2013-02-05
    • 2011-08-23
    • 2012-02-06
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多