yakamara / redaxo_yrewrite

A multidomain URL rewrite engine for REDAXO
MIT License
56 stars 35 forks source link

X-Forwarded-Host statt X-Forwarded-Server zur Hostname Ermittlung hinter Reverse Proxy #552

Open wv-leifel opened 1 year ago

wv-leifel commented 1 year ago

Wir haben Redaxo mit YRewrite hinter einem Traefik Reverse Proxy aufgesetzt. Leider ist dabei die erzeugte sitemap.xml immer leer.

Grund dafür ist, dass der ermittelte Hostname in der getHost Methode dem Hostnamen des Reverse Proxies entspricht und nicht dem angefordertem Host. https://github.com/yakamara/redaxo_yrewrite/blob/e10cd337e2685a9eb649494e29d21bcdb174f725/lib/yrewrite/yrewrite.php#L584

Verwendet wird hier aktuell (falls gesetzt) der Header X-Forwarded-Server. Dieser entspricht z.B. laut Apache Dokumentation dem Hostnamen (des letzten) Proxy Servers. Sollte hier nicht stattdessen der Header X-Forwarded-Host verwendet werden? Dieser entspricht dem originalen Host der im HTTP Request Header vom Client mitgesendet wurde.

X-Forwarded-Host The original host requested by the client in the Host HTTP request header. X-Forwarded-Server The hostname of the proxy server.

Siehe hierzu https://httpd.apache.org/docs/2.4/mod/mod_proxy.html und auch z.B. die Diskussion https://stackoverflow.com/questions/43689625/x-forwarded-host-vs-x-forwarded-server.