diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 3ba159a3..ebabc55b 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -372,6 +372,11 @@ RewriteRule ^/radicale$ /radicale/ [R,L] ProxyPass http://localhost:5232/ retry=0 ProxyPassReverse http://localhost:5232/ RequestHeader set X-Script-Name /radicale + RequestHeader set X-Forwarded-Port "%{SERVER_PORT}s" + RequestHeader unset X-Forwarded-Proto + + RequestHeader set X-Forwarded-Proto "https" + ``` @@ -384,6 +389,11 @@ RewriteRule ^(.*)$ http://localhost:5232/$1 [P,L] # Set to directory of .htaccess file: RequestHeader set X-Script-Name /radicale +RequestHeader set X-Forwarded-Port "%{SERVER_PORT}s" +RequestHeader unset X-Forwarded-Proto + +RequestHeader set X-Forwarded-Proto "https" + ``` Example **lighttpd** configuration: diff --git a/radicale/app/move.py b/radicale/app/move.py index 0c38eed5..5bd8a579 100644 --- a/radicale/app/move.py +++ b/radicale/app/move.py @@ -32,6 +32,7 @@ def get_server_netloc(environ: types.WSGIEnviron, force_port: bool = False): host = environ["HTTP_X_FORWARDED_HOST"] proto = environ.get("HTTP_X_FORWARDED_PROTO") or "http" port = "443" if proto == "https" else "80" + port = environ["HTTP_X_FORWARDED_PORT"] or port else: host = environ.get("HTTP_HOST") or environ["SERVER_NAME"] proto = environ["wsgi.url_scheme"]