| #!/usr/bin/env python3 |
| |
| import os |
| import sys |
| from urllib.parse import parse_qs |
| |
| query = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True) |
| status = int(query.get('status', [500])[0]) |
| target = query.get('target', [''])[0] |
| |
| uri = '{}/{}'.format('/'.join(os.environ.get('SCRIPT_URL', '').split('/')[:-1]), target) |
| |
| sys.stdout.write('Content-Type: text/html\r\n') |
| |
| host = os.environ.get('HTTP_HOST', '') |
| if query.get('host', [None])[0] is not None: |
| host = query.get('host')[0] |
| |
| if status in [301, 302, 303, 307, 308]: |
| sys.stdout.write( |
| 'status: {}\r\n' |
| 'Location: http://{}{}\r\n\r\n'.format(status, host, uri) |
| ) |
| else: |
| sys.stdout.write( |
| 'status: 500\r\n\r\n' |
| 'Unexpected status code ({}) received.'.format(status) |
| ) |