From 3abd843cdb0f05f068833208ae07b8b31af16173 Mon Sep 17 00:00:00 2001 From: borg-0300 Date: Mon, 9 Jan 2006 18:54:21 +0000 Subject: [PATCH] bugfix for http://www.yacy-forum.de/viewtopic.php?t=1706 git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@1300 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/de/anomic/htmlFilter/htmlFilterContentScraper.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/de/anomic/htmlFilter/htmlFilterContentScraper.java b/source/de/anomic/htmlFilter/htmlFilterContentScraper.java index 96ef66877..06ea067d8 100644 --- a/source/de/anomic/htmlFilter/htmlFilterContentScraper.java +++ b/source/de/anomic/htmlFilter/htmlFilterContentScraper.java @@ -160,11 +160,11 @@ public class htmlFilterContentScraper extends htmlFilterAbstractScraper implemen } else if (url.getProtocol().equals("https")) { if (url.getPort() < 0 || url.getPort() == 443) { defaultPort = true; } } - String path = url.getFile(); + String path = url.getPath(); // (this is different from previous normal forms where a '/' must not appear in root paths; here it must appear. Makes everything easier.) if (path.length() == 0 || path.charAt(0) != '/') path = "/" + path; - + Pattern pathPattern = Pattern.compile("(/[^/\\.]+/)[.]{2}(?=/)|/\\.(?=/)|/(?=/)"); Matcher matcher = pathPattern.matcher(path); while (matcher.find()) { @@ -172,6 +172,9 @@ public class htmlFilterContentScraper extends htmlFilterAbstractScraper implemen matcher.reset(path); } + String query = url.getQuery().replaceAll("[\"\\/:*?<>|]", "_"); + if (query != null) { path = path.concat("_").concat(query); } + if (defaultPort) return url.getProtocol() + "://" + url.getHost() + path; return url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + path; }