将所有http请求重定向到帆js中的https
Redirect all http request to https in sails js
我正试图弄清楚如何在Sails JS中将所有HTTP请求重定向到HTTPS0.11.0。
我试过下面的代码,但没有用。
var express = require("express"),
app = express();
app.get('*', function(req,res) {
if(req.isSocket){
return res.redirect('wss://' + req.headers.host + req.url)
}
else{
return res.redirect('https://' + req.headers.host + req.url)
}
}).listen(80);
您可以使用Sails中的http中间件来实现这一点。
在config/http.js文件中,向中间件对象添加这样的函数。
requireHttps: function(req, res, next) {
if (!req.secure) {
return res.redirect('https://' + req.get('host') + req.url);
}
return next();
},
或者像这样(如果你使用亚马逊弹性负载均衡器,它可以通过http与你的服务器通信):
requireHttps: function(req, res, next) {
if (req.headers['x-forwarded-proto'] !== undefined && req.headers['x-forwarded-proto'] == 'http') {
return res.redirect('https://' + req.get('host') + req.url);
}
return next();
},
然后简单地将"requireHttps"添加到中间件对象中的订单数组中,如下所示:
order: [
'startRequestTimer',
'cookieParser',
'session',
'passportInit',
'passportSession',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'requireHttps',
'router',
'www',
'favicon',
'404',
'500',
],
我使用nginx进行重定向。nginx.conf文件中的配置
server {
listen 80;
server_name example.com;
rewrite ^ https://example.com$request_uri? permanent;
}
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- react.js中的密钥绑定
- Node.js中的JavaScript原型对象效率
- dropdown.js中的复杂事件处理
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- JS中的按钮和文本输入
- 手动触发ember.js中的属性更改
- Node JS中的排名系统算法
- 如何在渲染视图时将变量传递给Node.js中的脚本标记
- 渲染”;a“;React.js中的可选href
- Node.js中的谷歌地图几何库
- JS中的乘法不起作用
- 你能把grunt.js中的linter改成jslint吗
- 如何将输入范围的值传递给JS中的变量
- 使用指令的angular js中的Like和different
- Angularjs:修改js中的作用域,稍后在页面中使用
- 计算php或js中的距离
- 从JS中的字符串中读取数字的库
- 纸张.js中的线条变形
- 如何使用React JS中的循环,根据条件渲染或不渲染表数据