diff --git a/build.xml b/build.xml index ed472bd86..d00236a27 100644 --- a/build.xml +++ b/build.xml @@ -912,8 +912,8 @@ - + diff --git a/source/de/anomic/http/httpdProxyHandler.java b/source/de/anomic/http/httpdProxyHandler.java index b7104b230..50decd338 100644 --- a/source/de/anomic/http/httpdProxyHandler.java +++ b/source/de/anomic/http/httpdProxyHandler.java @@ -486,16 +486,16 @@ public final class httpdProxyHandler { } // resolve yacy and yacyh domains - final String yAddress = resolveYacyDomains(host); + String yAddress = resolveYacyDomains(host); // re-calc the url path String remotePath = (args == null) ? path : (path + "?" + args); // with leading '/' - - // attach possible yacy-sublevel-domain - if ((yAddress != null) && - ((pos = yAddress.indexOf("/")) >= 0) && - (!(remotePath.startsWith("/env"))) // this is the special path, staying always at root-level - ) remotePath = yAddress.substring(pos) + remotePath; + + // remove yacy-subdomain-path, when accessing /env + if ( (yAddress != null) + && (remotePath.startsWith("/env")) + && ((pos = yAddress.indexOf('/')) != -1) + ) yAddress = yAddress.substring(0, yAddress.indexOf('/')); modifyProxyHeaders(requestHeader, httpVer); @@ -905,10 +905,13 @@ public final class httpdProxyHandler { prepareRequestHeader(conProp, requestHeader, hostlow); // resolve yacy and yacyh domains - final String yAddress = resolveYacyDomains(host); + String yAddress = resolveYacyDomains(host); - // attach possible yacy-sublevel-domain - if ((yAddress != null) && ((pos = yAddress.indexOf("/")) >= 0)) remotePath = yAddress.substring(pos) + remotePath; + // remove yacy-subdomain-path, when accessing /env + if ( (yAddress != null) + && (remotePath.startsWith("/env")) + && ((pos = yAddress.indexOf('/')) != -1) + ) yAddress = yAddress.substring(0, yAddress.indexOf('/')); modifyProxyHeaders(requestHeader, httpVer); @@ -991,14 +994,17 @@ public final class httpdProxyHandler { prepareRequestHeader(conProp, requestHeader, host.toLowerCase()); - final String yAddress = resolveYacyDomains(host); + String yAddress = resolveYacyDomains(host); // re-calc the url path String remotePath = (args == null) ? path : (path + "?" + args); - // attach possible yacy-sublevel-domain - if ((yAddress != null) && ((pos = yAddress.indexOf("/")) >= 0)) remotePath = yAddress.substring(pos) + remotePath; - + // remove yacy-subdomain-path, when accessing /env + if ( (yAddress != null) + && (remotePath.startsWith("/env")) + && ((pos = yAddress.indexOf('/')) != -1) + ) yAddress = yAddress.substring(0, yAddress.indexOf('/')); + modifyProxyHeaders(requestHeader, httpVer); final String connectHost = hostPart(host, port, yAddress);