diff --git a/pywb/framework/archivalrouter.py b/pywb/framework/archivalrouter.py index 3b0b5a6d..801636ad 100644 --- a/pywb/framework/archivalrouter.py +++ b/pywb/framework/archivalrouter.py @@ -23,6 +23,9 @@ class ArchivalRouter(object): self.home_view = kwargs.get('home_view') self.error_view = kwargs.get('error_view') + self.urlrewriter_class = (kwargs.get('config', {}). + get('urlrewriter_class', UrlRewriter)) + def __call__(self, env): request_uri = env['REL_REQUEST_URI'] @@ -61,7 +64,7 @@ class ArchivalRouter(object): coll=coll, use_abs_prefix=use_abs_prefix, wburl_class=route.handler.get_wburl_type(), - urlrewriter_class=UrlRewriter, + urlrewriter_class=self.urlrewriter_class, cookie_scope=route.cookie_scope, rewrite_opts=route.rewrite_opts) diff --git a/pywb/rewrite/url_rewriter.py b/pywb/rewrite/url_rewriter.py index 3af62819..84d035ea 100644 --- a/pywb/rewrite/url_rewriter.py +++ b/pywb/rewrite/url_rewriter.py @@ -90,7 +90,10 @@ class UrlRewriter(object): new_url = new_url[len(self.prefix):] new_wburl = WbUrl(new_url) - return UrlRewriter(new_wburl, self.prefix) + return self._create_rebased_rewriter(new_wburl, self.prefix) + + def _create_rebased_rewriter(self, new_wburl, prefix): + return UrlRewriter(new_wburl, prefix) def get_cookie_rewriter(self, scope=None): # collection scope overrides rule scope?