node.js - Openshift 重定向到 Node 上的 https

标签 node.js ssl express openshift

我正在构建一个托管在 OpenShift 上的 Node.js 应用程序。我正在尝试将所有访问重定向到该网站的 https 版本。

我尝试按照其他一些帖子中的建议在公共(public)目录中添加一个 .htaccess 文件,但这并没有什么不同。

下面是我的 .htaccess 文件:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

我使用 AngularJs 和 ui-router 来处理网站上的导航。通过实现下面的代码,我能够实现到 https 的重定向,但我认为这应该在服务器端处理。

if(window.location.protocol != 'https'){
        $window.location.href = $location.absUrl().replace('http', 'https');
    }

最佳答案

.HTACCESS 可用于基于 Apache 的卡式盒。检查this FAQ answer ;它描述了如何使用 Express 重定向到 HTTPS。

编辑:

原始答案解决了 OpenShift Online v2 的问题,即 no longer available .在 OpenShift 3 上托管应用程序时,创建一个 secure routeinsecureEdgeTerminationPolicy 设置为 Redirect 将在平台级别处理重定向,无需在应用程序本身中解决此问题。


当使用某些 OpenShift Online 3 时订阅计划(即 Starter 计划,在撰写此编辑时),路线可能是 restricted默认主机和证书。

关于node.js - Openshift 重定向到 Node 上的 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38039775/

相关文章:

javascript - 我可以在 socket.io "socket.on(eventName, callback)"中使用返回 promise 吗?

asp.net - 身份服务器 4 和 TLS 1.2

security - 为什么我需要自定义域才能将 SSL 连接到我的端点

iis - 使用 makecert 开发 SSL

node.js - Sequelize 删除 JSON 中不存在的行

node.js - 502 : Proxy Error from Express app on Ubuntu 18. 04 & Apache2

javascript - 如何将相同格式的 JSON 对象添加到具有不同值的数组中?

node.js - 我所有的 Node.js 应用程序同时意外崩溃

node.js - webdriver-manager 更新抛出错误 : connect ETIMEDOUT

javascript - 等待 Mongoose 执行完成