我有一个应用程序在heroku上运行,并在带有https的节点上运行express。如何确定协议,以在Heroku上使用nodejs强制重定向到https?
我的应用程序只是一个简单的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传递给它的代理thingamabob时使用的“ x-forwarded-proto”标头。(旁注:它们也传递了其他一些可能方便的x-
变量,请检查出来)。
我的代码:
/* At the top, with other redirect methods before other routes */
app.get('*',function(req,res,next){
if(req.headers['x-forwarded-proto']!='https')
res.redirect('https://mypreferreddomain.com'+req.url)
else
next() /* Continue to other routes if we're not redirecting */
})
感谢Brandon,我只是在等待那6个小时的延迟,这让我无法回答自己的问题。
我已经知道如何配置Tomcat,以便它将HTTP请求重定向到HTTPS: 启用并配置SSL连接器 在非SSL连接器上设置正确的“重定向端口”属性 修改web.xml并将传输保证设置为机密 我的问题是:有没有一种方法可以在不修改web.xml文件的情况下实现相同的结果? 我正在寻找一种不必更改Web应用程序的解决方案,它被部署为WAR文件。因此,添加servlet过滤器或在Web应用程序中实现重定向
我知道这里有很多文章谈论几乎相同的问题。然而我还不能解决它。 我们有一个正常的wordpress域 domain.com 我有两个虚拟主机,一个到http,另一个到https,从http虚拟主机我做一个重定向来强制https总是 那么我的虚拟主机是这样的 问题: 每次我进入导航器时,就像 https://www.domain.com navigator(Google等)抱怨它,因为证书(chepe
问题内容: 在处理特定网站时,有时会收到状态码为403的http响应。在这种情况下,我想重新执行该请求(因为在我的特定情况下,该服务器实际上超载时会抛出403)。我曾尝试将a 和a 一起使用,但是它没有按我希望的方式工作;我希望在中引发异常会触发,但事实并非如此。如何获得所需的功能? 这是说明我的情况的示例代码: 问题答案: 尝试使用自定义
我是php和ajax的新手。我试图从文档列表中强制下载文件。单击按钮后使用ajax调用触发以下功能。 我假设我得到的是文件内容作为响应,而不是下载文件。如果能给我一些建议,我将不胜感激。
我有一个使用自定义元素的表单。在组件中,我管理输入的状态(有效/无效)。在表单中,我要求用户重新输入密码,我希望如果用户输入两个正确的密码,然后修改第一个,第二个无效(得到一个红色的背景色)。 我还试图通过添加以下属性更显式地传递值:,但也不起作用。 那么,这种方法有什么问题,什么是强制重新评估第二个密码组件的好方法呢?
问题内容: 我试图对我的应用程序强制使用“横向”模式,因为我的应用程序绝对不是针对“人像”模式设计的。我怎样才能做到这一点? 问题答案: 现在可以使用HTML5 Webapp清单。 见下文。 原始答案: 您不能将网站或Web应用程序锁定在特定方向。它违反了设备的自然行为。 您可以使用CSS3媒体查询来 检测 设备方向,如下所示: 或通过绑定JavaScript方向更改事件,如下所示: 2014年1