diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java index 6b7291f1e01fc6ab0c1ce1e27578a217be634603..adff2b0a7aabdf604356ccbdb7c9d59c71b3cdb8 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java @@ -486,9 +486,23 @@ public class PluginStarter implements Runnable { String icfile = stripHTML(props, "console-icon"); if (icfile != null && !icfile.contains("..")) { StringBuilder buf = new StringBuilder(32); - buf.append('/').append(appName); - if (!icfile.startsWith("/")) + String url = stripHTML(props, "consoleLinkURL"); + if (url != null) { + if (url.endsWith(".html") || url.endsWith(".htm") || url.endsWith(".jsp") || url.endsWith("/home")) { + int slash = url.lastIndexOf('/'); + if (slash > 0) + url = url.substring(0, slash); + } + } else { + url = appName; + } + if (!url.startsWith("/")) + buf.append('/'); + buf.append(url); + if (!url.endsWith("/") && !icfile.startsWith("/")) buf.append('/'); + else if (url.endsWith("/") && icfile.startsWith("/")) + icfile = icfile.substring(1); buf.append(icfile); iconfile = buf.toString(); }