WordPress Site URL bei Anfragen über einen SSL-Proxy umschreiben

So, nun habe ich es doch hinbekommen, dass WordPress die Blog-URL bei SSL-Anfragen richtig erkennt. Eigentlich ist es ziemlich einfach. Auch bei neueren WordPress-Versionen kann in der “wp_config.php”  die SiteURL und die Homepage angegeben werden. Wird eine HTTPS-Anfrage über einen Proxy gestellt, schreibt dieser normalerweise seinen Hostnamen in die Header-Zeile “HTTP_X_FORWARDED_HOST”. Diese findet man im Array $_SERVER unter dem Schlüssel “HTTP_X_FORWARDED_HOST”. Ist dieser Wert gleich dem SSL-Proxy des Providers, definiert man die Site-URL über den SSL-Proxy. Andernfalls wird hier die normale Blog-URL definiert.

Hier der Code-Schnipsel aus meiner wp_config.php (ssl-account.com ist die Adresse des SSL-Proxys)

if($_SERVER['HTTP_X_FORWARDED_HOST']=="ssl-account.com")
{
// mit SSL-Proxy
define('WP_SITEURL', 'https://ssl-account.com/anb-networkz.de');
define('WP_HOME', 'https://ssl-account.com/anb-networkz.de');
}
else
{
// Ohne SSL-Proxy
define('WP_SITEURL', 'http://anb-networkz.de');
define('WP_HOME', 'http://anb-networkz.de');
}

6 thoughts on “WordPress Site URL bei Anfragen über einen SSL-Proxy umschreiben

  1. Wenn der Login nicht geht wird es an den Cookies liegen, ich habe es so gelöst.

    if($_SERVER['HTTP_X_FORWARDED_SERVER']==’ssl-account.com’)
    {
    // mit SSL-Proxy
    define(‘COOKIE_DOMAIN’, ‘ssl-account.com’);
    define(‘COOKIEPATH’, ‘/hostnamen.tld/’);
    define(‘WP_SITEURL’, ‘https://ssl-account.com/hostnamen.tld/wp‘);
    define(‘WP_HOME’, ‘https://ssl-account.com/hostnamen.tld‘);
    }
    else
    {
    // Ohne SSL-Proxy
    define(‘COOKIE_DOMAIN’, ‘www.hostnamen.tld’);
    define(‘WP_SITEURL’, ‘http://www.hostnamen.tld/wp‘);
    define(‘WP_HOME’, ‘http://www.hostnamen.tld‘);
    }

  2. Also bei mir funktioniert der Code-Schnippsel mit WordPress 3.01 ganz super, vielen Dank dafür! Mein Blog liegt bei Host Europe, die Adresse beginnt hier mit “https://ssl.webpack.de/…” Man kann hierdurch wie gewünscht verschlüsselt in der Admin-Oberfläche arbeiten.

    Beim Dashboard habe ich mich kurz gewundert, dass die Verschlüsselung nicht für die ganze Seite funktioniert (Firefox: “Verbindung teilweise verschlüsselt”). Aber das liegt an der defaultmäßig eingestellten Verwendung eines Avatars. Der wird ja von extern geladen und kann dadurch logischerweise nicht verschlüsselt werden. Wen das stört, der kann die Verwendung der Avatare einfach ausschalten und dann wird auch das Dashboard komplett verschlüsselt.

  3. An und für sich eine schöne Idee. Ich habe es auch gleich ausprobiert und grundsätzlich funktioniert es. Nur funktioniert dann leider über den SSL-Proxy kein Login mehr, was den eigentlichen Anwendungszweck für eine sichere Verbindung zuwider läuft.

  4. Derzeit bin ich bei 2.8.5, werde aber in den kommenden Tagen ebenfalls auf 2.8.6 wechseln. Was passiert denn wenn du versuchst die SiteURL umzuschreiben?

  5. Hi,

    wie ich sehe nutzt du das aktiv, leider funktioniert das bei mir unter der aktuellen 2.8.6 nicht, welche Version nutzt du? ich bin auch bei all-inkl.

    gruß jan