我有一个应用程序启动并运行在heroku上使用https表达节点.如何识别强制重定向到heroku上的nodejs的协议?
我的应用程序只是一个简单的http服务器,它(尚未)实现heroku发送它的https请求:
/* Heroku provides the port they want you on in this environment variable (hint: it's not 80) */
app.listen(process.env.PORT || 3000);
我有一个节点应用程序在Heroku上成功运行.我已经购买了加急SSL证书,一切正常.我转到https ...并获得一个完整的"绿色条形图",证明该网站是通过https提供的
但是,非SSL标准http仍然可用.如何强制应用程序通过https服务?谢谢
我是云托管新手......
我正在开发一个PHP Web应用程序,它作为"Cedar"应用程序在Heroku上托管.Heroku为他们所有的子域提供"背负式"SSL,所以我可以正常加载https://myapp.herokuapp.com.但我也可以加载http://myapp.herokuapp.com.我想通过将http请求重定向到强制SSL https.
通常,这很容易.我只想使用mod_rewrite如下:
RewriteCond %{HTTPS} != on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
但是这对HEROKU没有用!
看来SSL会在流量到达我的应用之前终止上游.因此%{HTTPS}从未满足条件,结果是重定向循环.我也试过以下,但也没有用:
RewriteCond %{SERVER_PORT} != 443 #<--also redirect loop
RewriteCond %{REQUEST_SCHEME} !https #<--also redirect loop
所以我的问题是如何在上游终止时检测/重定向到HTTPS?
我认为这将是一个简单的任务,但我很难找到一种方法来强制我的网页使用 https。next.js Web 应用程序位于 heroku 服务器上,我已经设置了 SSL。https 和 http 版本都可以,但如何强制或重定向网站以使用 https 版本。我见过一些使用express的解决方案,但我的网络应用程序中没有任何内容使用express,这是必需的吗?谢谢。