diff --git a/src/main/java/org/dynmap/web/HttpServerConnection.java b/src/main/java/org/dynmap/web/HttpServerConnection.java index 13d12533..6b6d2225 100644 --- a/src/main/java/org/dynmap/web/HttpServerConnection.java +++ b/src/main/java/org/dynmap/web/HttpServerConnection.java @@ -7,6 +7,7 @@ import java.io.OutputStream; import java.io.PrintStream; import java.io.StringWriter; import java.net.Socket; +import java.net.URLDecoder; import java.util.Map.Entry; import java.util.logging.Level; import java.util.logging.Logger; @@ -155,6 +156,7 @@ public class HttpServerConnection extends Thread { boolean directoryHandler = key.endsWith("/"); if (directoryHandler && request.path.startsWith(entry.getKey()) || !directoryHandler && request.path.equals(entry.getKey())) { relativePath = request.path.substring(entry.getKey().length()); + relativePath = URLDecoder.decode(relativePath,"utf-8"); handler = entry.getValue(); break; } diff --git a/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java b/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java index b7ae4dfc..2df01836 100644 --- a/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java +++ b/src/main/java/org/dynmap/web/handlers/ClientUpdateHandler.java @@ -30,7 +30,7 @@ public class ClientUpdateHandler implements HttpHandler { this.server = server; } - Pattern updatePathPattern = Pattern.compile("world/([a-zA-Z0-9_\\-\\.]+)/([0-9]*)"); + Pattern updatePathPattern = Pattern.compile("world/([^/]+)/([0-9]*)"); private static final HttpStatus WorldNotFound = new HttpStatus(HttpStatus.NotFound.getCode(), "World Not Found"); @Override public void handle(String path, HttpRequest request, HttpResponse response) throws Exception {