1
0
Fork 0
forked from svrjs/svrjs

Prepare web root postfix adding functionality for double slash URL support

This commit is contained in:
Dorian Niemiec 2024-03-02 22:21:49 +01:00
parent d633707ea5
commit 0f0c1b22ab

9
svr.js
View file

@ -4369,10 +4369,11 @@ if (!cluster.isPrimary) {
// Add web root postfixes // Add web root postfixes
if (!isProxy) { if (!isProxy) {
var urlWithPostfix = req.url; var preparedReqUrl3 = (postFixEntry.allowDoubleSlashes ? (href.replace(/\/+/,"/") + (uobject.search ? uobject.search : "")) + (uobject.hash ? uobject.hash : "")) : req.url);
var urlWithPostfix = preparedReqUrl3;
var postfixPrefix = ""; var postfixPrefix = "";
wwwrootPostfixPrefixesVHost.every(function (currentPostfixPrefix) { wwwrootPostfixPrefixesVHost.every(function (currentPostfixPrefix) {
if (req.url.indexOf(currentPostfixPrefix) == 0) { if (preparedReqUrl3.indexOf(currentPostfixPrefix) == 0) {
if (currentPostfixPrefix.match(/\/+$/)) postfixPrefix = currentPostfixPrefix.replace(/\/+$/, ""); if (currentPostfixPrefix.match(/\/+$/)) postfixPrefix = currentPostfixPrefix.replace(/\/+$/, "");
else if (urlWithPostfix.length == currentPostfixPrefix.length || urlWithPostfix[currentPostfixPrefix.length] == "?" || urlWithPostfix[currentPostfixPrefix.length] == "/" || urlWithPostfix[currentPostfixPrefix.length] == "#") postfixPrefix = currentPostfixPrefix; else if (urlWithPostfix.length == currentPostfixPrefix.length || urlWithPostfix[currentPostfixPrefix.length] == "?" || urlWithPostfix[currentPostfixPrefix.length] == "/" || urlWithPostfix[currentPostfixPrefix.length] == "#") postfixPrefix = currentPostfixPrefix;
else return true; else return true;
@ -4383,14 +4384,14 @@ if (!cluster.isPrimary) {
} }
}); });
wwwrootPostfixesVHost.every(function (postfixEntry) { wwwrootPostfixesVHost.every(function (postfixEntry) {
if (matchHostname(postfixEntry.host) && ipMatch(postfixEntry.ip, req.socket ? req.socket.localAddress : undefined) && !(postfixEntry.skipRegex && req.url.match(createRegex(postfixEntry.skipRegex)))) { if (matchHostname(postfixEntry.host) && ipMatch(postfixEntry.ip, req.socket ? req.socket.localAddress : undefined) && !(postfixEntry.skipRegex && preparedReqUrl3.match(createRegex(postfixEntry.skipRegex)))) {
urlWithPostfix = postfixPrefix + "/" + postfixEntry.postfix + urlWithPostfix; urlWithPostfix = postfixPrefix + "/" + postfixEntry.postfix + urlWithPostfix;
return false; return false;
} else { } else {
return true; return true;
} }
}); });
if (urlWithPostfix != req.url) { if (urlWithPostfix != preparedReqUrl3) {
serverconsole.resmessage("Added web root postfix: " + req.url + " => " + urlWithPostfix); serverconsole.resmessage("Added web root postfix: " + req.url + " => " + urlWithPostfix);
req.url = urlWithPostfix; req.url = urlWithPostfix;
uobject = parseURL(req.url); uobject = parseURL(req.url);