diff --git a/pywb/rewrite/regex_rewriters.py b/pywb/rewrite/regex_rewriters.py index 0b5bd47a..12001fb8 100644 --- a/pywb/rewrite/regex_rewriters.py +++ b/pywb/rewrite/regex_rewriters.py @@ -165,6 +165,12 @@ class JSLinkAndLocationRewriter(JSLocationRewriterMixin, pass +#================================================================= +class JSNoneRewriter(RegexRewriter): + def __init__(self, rewriter, rules=[]): + super(JSNoneRewriter, self).__init__(rewriter, rules) + + #================================================================= # Set 'default' JSRewriter JSRewriter = JSLinkAndLocationRewriter diff --git a/pywb/rewrite/rewriterules.py b/pywb/rewrite/rewriterules.py index 95e2225a..f48dbb09 100644 --- a/pywb/rewrite/rewriterules.py +++ b/pywb/rewrite/rewriterules.py @@ -2,7 +2,7 @@ from pywb.utils.dsrules import BaseRule from regex_rewriters import RegexRewriter, CSSRewriter, XMLRewriter from regex_rewriters import JSLinkAndLocationRewriter, JSLinkOnlyRewriter -from regex_rewriters import JSLocationOnlyRewriter +from regex_rewriters import JSLocationOnlyRewriter, JSNoneRewriter from header_rewriter import HeaderRewriter from html_rewriter import HTMLRewriter @@ -36,6 +36,8 @@ class RewriteRules(BaseRule): js_default_class = JSLinkAndLocationRewriter elif self.js_rewrite_location == 'location': js_default_class = JSLocationOnlyRewriter + elif self.js_rewrite_location == 'none': + js_default_class = JSNoneRewriter else: js_default_class = JSLinkOnlyRewriter diff --git a/pywb/rewrite/test/test_rewrite_live.py b/pywb/rewrite/test/test_rewrite_live.py index eb4d51d4..8153e223 100644 --- a/pywb/rewrite/test/test_rewrite_live.py +++ b/pywb/rewrite/test/test_rewrite_live.py @@ -159,6 +159,21 @@ def test_local_2_js_loc_only_rewrite(): # still link rewrite in HTML assert '"/pywb/20131226101010/http://example.com/some/path/another.html"' in buff +def test_local_2_no_rewrite(): + status_headers, buff = get_rewritten(get_test_dir() + 'text_content/sample.html', + urlrewriter, + head_insert_func, + 'example,example,test,norewrite)/') + + # wombat insert added + assert '' in buff + + # JS location NOT rewritten, JS link NOT rewritten + assert 'window.location = "http:\/\/example.com/dynamic_page.html"' in buff + + # still link rewrite in HTML + assert '"/pywb/20131226101010/http://example.com/some/path/another.html"' in buff + def test_example_1(): status_headers, buff = get_rewritten('http://example.com/', urlrewriter, req_headers={'Connection': 'close'}) diff --git a/pywb/rules.yaml b/pywb/rules.yaml index f3016efd..53691beb 100644 --- a/pywb/rules.yaml +++ b/pywb/rules.yaml @@ -231,6 +231,11 @@ rules: rewrite: js_rewrite_location: location + - url_prefix: 'example,example,test,norewrite)/' + + rewrite: + js_rewrite_location: none + - url_prefix: 'example,example,test)/' canonicalize: