diff --git a/pywb/framework/proxy.py b/pywb/framework/proxy.py
index 315594c9..ba6d3266 100644
--- a/pywb/framework/proxy.py
+++ b/pywb/framework/proxy.py
@@ -55,6 +55,7 @@ class ProxyRouter(object):
PAC_PATH = '/proxy.pac'
BLOCK_SIZE = 4096
+ DEF_MAGIC_NAME = 'pywb.proxy'
def __init__(self, routes, **kwargs):
self.hostpaths = kwargs.get('hostpaths')
@@ -65,13 +66,16 @@ class ProxyRouter(object):
if proxy_options:
proxy_options = proxy_options.get('proxy_options', {})
+ self.magic_name = proxy_options.get('magic_name')
+ if not self.magic_name:
+ self.magic_name = self.DEF_MAGIC_NAME
+ proxy_options['magic_name'] = self.magic_name
+
if proxy_options.get('cookie_resolver'):
self.resolver = CookieResolver(routes, proxy_options)
else:
self.resolver = ProxyAuthResolver(routes, proxy_options)
- self.magic_name = proxy_options.get('magic_name', 'pywb-proxy.com')
-
self.insert_banner = proxy_options.get('banner_only_replay', False)
self.unaltered = proxy_options.get('unaltered_replay', False)
@@ -134,10 +138,10 @@ class ProxyRouter(object):
if parts.query:
env['pywb.proxy_req_uri'] += '?' + parts.query
- # static
- static_prefix = 'static.' + self.magic_name
+ # select prefix
+ env['pywb_proxy_select'] = 'select.' + self.magic_name
- if env['pywb.proxy_host'] == static_prefix:
+ if env['pywb.proxy_host'] == self.magic_name:
env['REL_REQUEST_URI'] = env['pywb.proxy_req_uri']
return None
@@ -147,13 +151,12 @@ class ProxyRouter(object):
if response:
return response
- host_prefix = env['pywb.proxy_scheme'] + '://' + static_prefix
+ host_prefix = env['pywb.proxy_scheme'] + '://' + self.magic_name
wbrequest = route.request_class(env,
request_uri=url,
wb_url_str=url,
coll=coll,
- # host_prefix=self.hostpaths[0],
host_prefix=host_prefix,
wburl_class=route.handler.get_wburl_type(),
urlrewriter_class=HttpsUrlRewriter,
diff --git a/pywb/framework/proxy_resolvers.py b/pywb/framework/proxy_resolvers.py
index 1b33be01..9062bafd 100644
--- a/pywb/framework/proxy_resolvers.py
+++ b/pywb/framework/proxy_resolvers.py
@@ -119,7 +119,7 @@ class CookieResolver(BaseCollResolver): # pragma: no cover
def __init__(self, routes, config):
config['pre_connect'] = False
super(CookieResolver, self).__init__(routes, config)
- self.magic_name = config.get('magic_name', 'pywb-proxy.com')
+ self.magic_name = config['magic_name']
self.cookie_name = config.get('cookie_name', '__pywb_coll')
self.proxy_select_view = config.get('proxy_select_view')
diff --git a/pywb/framework/wsgi_wrappers.py b/pywb/framework/wsgi_wrappers.py
index 85e23aaa..d1a4f772 100644
--- a/pywb/framework/wsgi_wrappers.py
+++ b/pywb/framework/wsgi_wrappers.py
@@ -135,14 +135,12 @@ class WSGIApp(object):
logging.info(err_msg)
err_details = None
- is_proxy_mode = env.get('pywb.proxy_host') is not None
-
if error_view:
return error_view.render_response(exc_type=type(exc).__name__,
err_msg=err_msg,
err_details=err_details,
status=status,
- is_proxy_mode=is_proxy_mode,
+ env=env,
err_url=err_url)
else:
return WbResponse.text_response(status + ' Error: ' + err_msg,
diff --git a/pywb/static/wb.js b/pywb/static/wb.js
index 4a23b03c..fb2c3ac3 100644
--- a/pywb/static/wb.js
+++ b/pywb/static/wb.js
@@ -70,8 +70,9 @@ function init_banner() {
text += "" + capture_str + "";
- if (wbinfo.is_proxy_mode && wbinfo.url) {
- text += '
Switch Collection';
+ if (wbinfo.proxy_select && wbinfo.url) {
+ full_url = wbinfo.proxy_select + "/" + wbinfo.url;
+ text += '
Switch Collection';
}
banner.innerHTML = text;
diff --git a/pywb/ui/error.html b/pywb/ui/error.html
index d7231893..6453e987 100644
--- a/pywb/ui/error.html
+++ b/pywb/ui/error.html
@@ -10,9 +10,9 @@