forked from svrjs/svrjs
Moved and fixed bug with "wwwredirect"
This commit is contained in:
parent
fdac578678
commit
b21b8dc84c
2 changed files with 20 additions and 24 deletions
|
@ -3,7 +3,7 @@
|
||||||
"port": 80,
|
"port": 80,
|
||||||
"pubport": 80,
|
"pubport": 80,
|
||||||
"page404": "404.html",
|
"page404": "404.html",
|
||||||
"timestamp": 1693671292465,
|
"timestamp": 1693674757734,
|
||||||
"blacklist": [],
|
"blacklist": [],
|
||||||
"nonStandardCodes": [],
|
"nonStandardCodes": [],
|
||||||
"enableCompression": true,
|
"enableCompression": true,
|
||||||
|
|
42
svr.js
42
svr.js
|
@ -3282,27 +3282,7 @@ if (!cluster.isPrimary) {
|
||||||
}
|
}
|
||||||
res.writeHeadNative(a, b, c);
|
res.writeHeadNative(a, b, c);
|
||||||
};
|
};
|
||||||
if (wwwredirect) {
|
|
||||||
var hostname = req.headers.host.split[":"];
|
|
||||||
var hostport = null;
|
|
||||||
if (hostname.length > 1 && (hostname[0] != "[" || hostname[hostname.length - 1] != "]")) hostport = hostname.pop();
|
|
||||||
hostname = hostname.join(":");
|
|
||||||
}
|
|
||||||
if (wwwredirect && hostname == domain && hostname.indexOf("www.") != 0) {
|
|
||||||
var lloc = (req.socket.encrypted ? "https" : "http") + "://" + hostname + (hostport ? ":" + hostport : "");
|
|
||||||
try {
|
|
||||||
var rheaders = getCustomHeaders();
|
|
||||||
rheaders["Location"] = lloc + (req.url.replace(/\/+/g, "/"));
|
|
||||||
res.writeHead(301, "Redirect to WWW", rheaders);
|
|
||||||
res.end();
|
|
||||||
} catch (err) {
|
|
||||||
var cheaders = getCustomHeaders();
|
|
||||||
cheaders["Content-Type"] = "text/html; charset=utf-8";
|
|
||||||
res.writeHead(500, "Internal Server Error", cheaders);
|
|
||||||
res.write("<html><head><title>500 Internal Server Error</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /></head><body><h1>500 Internal Server Error</h1><p>The server had an unexpected error. Below, error stack is shown: </p><code>" + (stackHidden ? "[error stack hidden]" : generateErrorStack(err)).replace(/\r\n/g, "<br/>").replace(/\n/g, "<br/>").replace(/\r/g, "<br/>").replace(/ {2}/g, " ") + "</code><p>Please contact with developer/administrator of the website.</p><p><i>" + (exposeServerVersion ? "SVR.JS/" + version + " (" + getOS() + "; " + (process.isBun ? ("Bun/v" + process.versions.bun + "; like Node.JS/" + process.version) : ("Node.JS/" + process.version)) + ")" : "SVR.JS") + (req.headers.host == undefined ? "" : " on " + String(req.headers.host).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")) + "</i></p></body></html>");
|
|
||||||
res.end();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var finished = false;
|
var finished = false;
|
||||||
res.on("finish", function () {
|
res.on("finish", function () {
|
||||||
if (!finished) {
|
if (!finished) {
|
||||||
|
@ -4495,7 +4475,7 @@ if (!cluster.isPrimary) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//scan blacklist
|
//scan blacklist
|
||||||
if (blacklist.check(reqip) && href != "/favicon.ico") {
|
if (blacklist.check(reqip) && href != "/favicon.ico") {
|
||||||
|
@ -4563,6 +4543,22 @@ if (!cluster.isPrimary) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Handle redirects to addresses with www.
|
||||||
|
if (wwwredirect) {
|
||||||
|
var hostname = req.headers.host.split[":"];
|
||||||
|
var hostport = null;
|
||||||
|
if (hostname.length > 1 && (hostname[0] != "[" || hostname[hostname.length - 1] != "]")) hostport = hostname.pop();
|
||||||
|
hostname = hostname.join(":");
|
||||||
|
if (hostname == domain && hostname.indexOf("www.") != 0) {
|
||||||
|
try {
|
||||||
|
redirect((req.socket.encrypted ? "https" : "http") + "://www." + hostname + (hostport ? ":" + hostport : "") + req.url.replace(/\/+/g, "/"));
|
||||||
|
} catch (err) {
|
||||||
|
callServerError(500, undefined, generateErrorStack(err));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//URL REWRITING
|
//URL REWRITING
|
||||||
function rewriteURL(address, map) {
|
function rewriteURL(address, map) {
|
||||||
var rewrittenAddress = address;
|
var rewrittenAddress = address;
|
||||||
|
@ -4916,7 +4912,7 @@ if (!cluster.isPrimary) {
|
||||||
if (err.message == "Intentionally crashed") throw err; //If intentionally crashed, then crash SVR.JS
|
if (err.message == "Intentionally crashed") throw err; //If intentionally crashed, then crash SVR.JS
|
||||||
callServerError(500, undefined, generateErrorStack(err)); //Else just return 500 error
|
callServerError(500, undefined, generateErrorStack(err)); //Else just return 500 error
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
//Listen port to server
|
//Listen port to server
|
||||||
|
|
Reference in a new issue