fastcgi-parser
Version:
FastCGI parser for low level parsing of the FastCGI protocol
43 lines (40 loc) • 1.08 kB
JavaScript
var http = require("http");
var php = require("./node-php");
var urlp = require("url");
var path = require("path");
var paperboy = require("paperboy");
var options = require("./options").options;
var rewrites = [
[new RegExp("^/$"), "/index.php"],
[new RegExp("^(.*)/\\?(.*)$"), "$1/index.php?$2"],
[new RegExp("^(.*)/$"), "$1/index.php"]
];
var agent = new php.Agent(4, options);
var reqs = 0;
var resps = 0;
agent.on("error", function(err) {
console.log("client.error");
console.log(err);
});
http.createServer(function (req, res) {
rewrites.some(function(rewrite) {
if(req.url.match(rewrite[0])) {
var replace = req.url.replace(rewrite[0], rewrite[1]);
req.url = replace;
return true;
}
return false;
});
var url = urlp.parse(req.url);
var ext = path.extname(url.pathname);
if(ext === ".php") {
agent.request(req, res, function(err, response) {
if(err) console.log(err);
});
}
else {
paperboy
.deliver(options.root, req, res)
.addHeader("Cache-Control", "public, max-age=2538768")
}
}).listen(options.server.port, options.server.host);