2
我想让用户使用http和https访问所有网站的页面。如何通过ssl运行docpad?
我也希望能够将需要加密的某些路径(/ api/*和/ backend/*)的http请求重定向到https(强制https)。
我想让用户使用http和https访问所有网站的页面。如何通过ssl运行docpad?
我也希望能够将需要加密的某些路径(/ api/*和/ backend/*)的http请求重定向到https(强制https)。
节点版本:v0.9.10
docpad版本:v6.21.10
重要提示:似乎对于docpad config file的文件已经过时,我不得不挖源,发现serverHttp和serverExpress选项现在必须在服务器选项下。
这里的项目的docpad.js文件:
var https = require('https'),
path = require('path'),
fs = require('fs'),
express = require('express');
var sslOptions = {
key: fs.readFileSync(path.resolve(__dirname, "../../certificates/key.pem")),
cert: fs.readFileSync(path.resolve(__dirname, "../../certificates/cert.pem"))
};
serverExpress = express();
serverHttps = https.createServer(sslOptions, serverExpress);
docpadConfig = {
environments: {
http: {
port: 80,
events: {
serverExtend: function (server) {
var i = 0;
// Redirect requests that requires https
server.server.get(/^\/(api|backend)\/.*/, function (req, res) {
res.redirect('https://' + req.headers.host + req.url)
});
}
}
},
https: {
port: 443,
server: {
serverHttp: serverHttps,
serverExpress: serverExpress
}
}
}
};
module.exports = docpadConfig;
与运行在两种环境:
docpad --env "http" run
docpad --env "https" run
,就是这样。
这个人太棒了。我爱你基于环境的方法。做得好! Re“我必须挖掘源代码才能发现serverHttp和serverExpress选项现在必须在服务器选项下。”看起来像一个错误,在这里创建一个问题:https://github.com/bevry/docpad/issues/457 – balupton 2013-03-12 21:55:00
我很高兴你喜欢它:)谢谢你开发docpad。 – theosp 2013-03-13 20:50:02