Re: Wordpress hinter einem Proxy, Aendern von HTTP auf HTTPS
Oliver Fromme <[email protected]> Fri, 29 Dec 2017 17:09:57 +0100 (CET)
| Newsgroups | gmane.os.freebsd.questions.german |
|---|---|
| Message-ID | <[email protected]> |
Hi Peter, Peter Ross wrote: > [...] > if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && > $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') > $_SERVER['HTTPS'] = 'on'; > ---- > > Nun, da diese "Langversion" nicht funktioniert, nehme ich an, dass der > Proxy (Apache 2.4 + mod_proxy) die Variable > $_SERVER['HTTP_X_FORWARDED_PROTO'] nicht kennt. Ja, so ist es. Header, die mit „X-“ beginnen, sind kein Standard. Apache kennt momentan nur X-Forwarded-For, X-Forwarded-Host und X-Forwarded-Server; siehe die Doku: http://httpd.apache.org/docs/current/mod/mod_proxy.html#x-headers und: http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxyaddheaders Du kannst natürlich bei Bedarf einen beliebigen eigenen Header definieren: RequestHeader set X-Forwarded-Proto: https Die Umgebungsvariable für WP wird daraus generiert, indem alles in Großbuchstaben konvertiert wird, aus den Strichen werden Unterstriche, und es wird HTTP_ davorgehängt, also HTTP_X_FORWARDED_PROTO. Dies entspricht der allgemeinen API-Konvention für die Kommunikation zwischen Webservern und Applikationen (CGI, PHP, ...). Bei Deiner „Kurzversion“ – also ohne „if (isset(...))“ – gibt es das Problem, dass Du nur per https über den Proxy auf WP zugreifen kannst. Wenn Du z.B. für administrative Zwecke auch direkt per http darauf zugreifen möchtest, dann musst Du die „Langversion“ verwenden und dem Apache in der Proxy-Konfiguration obigen Header beibringen. Gruß Olli -- Oliver Fromme, München -- FreeBSD + DragonFly BSD ``We are all but compressed light'' - Albert Einstein To Unsubscribe: send mail to [email protected] with "unsubscribe de-bsd-questions" in the body of the message