Re: Wordpress hinter einem Proxy, Aendern von HTTP auf HTTPS
Peter Ross <[email protected]> Fri, 29 Dec 2017 14:52:13 +1100 (AEDT)
| Newsgroups | gmane.os.freebsd.questions.german |
|---|---|
| Message-ID | <alpine.DEB.2.20.1712291024450.2852@petros-Latitude-E5520> |
Hi olli,
Danke fuer den Tip.
On Thu, 28 Dec 2017, Oliver Fromme wrote:
> Hi Peter,
>
> Peter Ross wrote:
> > [...]
> > Auf dem Jail, in dem Wordpress laeuft (unter Port 80, unverschluesselt),
> > habe ich in die wp-config.php
> >
> > define('WP_HOME','https://test.journal1.com.au');
> > define('WP_SITEURL','https://test.journal1.com.au');
>
> Evtl. brauchst Du auch:
> $_SERVER['HTTPS'] = 'on';
Genau. Zusammengefasst alles, was ich machen muss, noch mal unten.
Dann geht es auch ohne die beiden anderen Eintraege, WP_HOME
und WP_SITEURL sind nicht noetig.
Hier, was ich zur Erklaerung dazu gefunden habe: die is_ssl Funktion
funktioniert nicht, wenn man auf dem Server HTTP verwendet, davor aber ein
Reverse Proxy liegt, der via HTTPS angesprochen wird.
----
https://codex.wordpress.org/Function_Reference/is_ssl
NB: this won't work for websites behind some load balancers, especially
Network Solutions hosted websites. To bodgy up a fix, save this gist into
the plugins folder and enable it. For details, read WordPress is_ssl()
doesnΒ’t work behind some load balancers.
Websites behind load balancers or reverse proxies that support
HTTP_X_FORWARDED_PROTO can be fixed by adding the following code to the
wp-config.php file, above the require_once call:
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.
Also, zusammengefasst:
$_SERVER['HTTPS'] = 'on' in wp-config.php
und URLs hier in der Datenbank:
UPDATE wp_options SET option_value = replace(option_value,
'http://test.journal1.com.au', 'https://test.journal1.com.au') WHERE
option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid,
'http://test.journal1.com.au','https://test.journal1.com.au');
UPDATE wp_posts SET post_content = replace(post_content,
'http://test.journal1.com.au', 'https://test.journal1.com.au');
UPDATE wp_postmeta SET meta_value =
replace(meta_value,'http://test.journal1.com.au','https://test.journal1.com.au');
Dankeschoen
Peter