diff --git a/wled00/data/common.js b/wled00/data/common.js index 5a98b4fe1f..bd010bb13b 100644 --- a/wled00/data/common.js +++ b/wled00/data/common.js @@ -81,12 +81,12 @@ function getLoc() { localStorage.setItem('locIp', locip); } } else { - // detect reverse proxy - let path = l.pathname; - let paths = path.slice(1,path.endsWith('/')?-1:undefined).split("/"); - if (paths.length > 1) paths.pop(); // remove subpage (or "settings") - if (paths.length > 0 && paths[paths.length-1]=="settings") paths.pop(); // remove "settings" - if (paths.length > 1) { + // guess the base url if WLED is behind a reverse proxy + let paths = l.pathname.split("/").slice(1); // first is always empty + let settingsIndex = paths.lastIndexOf("settings"); + paths = paths.slice(0, settingsIndex); // if we don't have "settings", remove last entry (empty / or file) + + if (paths.length > 0) { locproto = l.protocol; loc = true; locip = l.hostname + (l.port ? ":" + l.port : "") + "/" + paths.join('/');