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