1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-24 06:59:52 +01:00

proxy: add custom rewrite prefix in proxy mode with 'pywb-proxy-rewrite: prefix' header

This commit is contained in:
Ilya Kreymer 2015-12-23 23:14:47 -08:00
parent 0cf6b40af9
commit ba19ff1cd5

View File

@ -9,7 +9,7 @@ import base64
import socket import socket
import ssl import ssl
from pywb.rewrite.url_rewriter import SchemeOnlyUrlRewriter from pywb.rewrite.url_rewriter import SchemeOnlyUrlRewriter, UrlRewriter
from pywb.rewrite.rewrite_content import RewriteContent from pywb.rewrite.rewrite_content import RewriteContent
from pywb.utils.wbexception import BadRequestException from pywb.utils.wbexception import BadRequestException
@ -193,9 +193,18 @@ class ProxyRouter(object):
if response: if response:
return response return response
host_prefix = env['pywb.proxy_scheme'] + '://' + self.magic_name
rel_prefix = '' rel_prefix = ''
custom_prefix = env.get('HTTP_PYWB_REWRITE_PREFIX', '')
if custom_prefix:
host_prefix = custom_prefix
urlrewriter_class = UrlRewriter
abs_prefix = True
else:
host_prefix = env['pywb.proxy_scheme'] + '://' + self.magic_name
urlrewriter_class = SchemeOnlyUrlRewriter
abs_prefix = False
# special case for proxy calendar # special case for proxy calendar
if (env['pywb.proxy_host'] == 'query.' + self.magic_name): if (env['pywb.proxy_host'] == 'query.' + self.magic_name):
url = env['pywb.proxy_req_uri'][1:] url = env['pywb.proxy_req_uri'][1:]
@ -211,8 +220,8 @@ class ProxyRouter(object):
host_prefix=host_prefix, host_prefix=host_prefix,
rel_prefix=rel_prefix, rel_prefix=rel_prefix,
wburl_class=route.handler.get_wburl_type(), wburl_class=route.handler.get_wburl_type(),
urlrewriter_class=SchemeOnlyUrlRewriter, urlrewriter_class=urlrewriter_class,
use_abs_prefix=False, use_abs_prefix=abs_prefix,
is_proxy=True) is_proxy=True)
if matcher: if matcher: