Das Putzlowitsch Test- und SEO-Blog

WordPress 2.3 – Problem ohne www bei Strato

Hintergrund

Es war mir ja schon fast am Anfang meiner Strato-Zeit aufgefallen. Die Servervariable HTTP_HOST liefert immer den Hostname mit einem vorangestellten www zurück, selbst dann, wenn der Aufruf ohne www erfolgte. Eigentlich eine eigenwillige, wenn nicht gar falsche Konfiguration des Strato-Severs, denn die Variable HTTP_HOST soll eigentlich genau das enthalten, was der Browser im HTTP-Requestheader übermittelt. Wenn ich also die Seite schnurpsel.de aufrufe, dann sollte eben das da drin stehen, und nicht etwa www.schnurpsel.de. Aber genau das passiert bei Strato (PowerWeb A und S).

Problem

Bisher stellte das auch kein Problem dar, mit dem Neuen WordPress 2.3 aber schon (deshalb war meine Seite gestern Abend auch zeitweise nicht erreichbar). Ab WordPress 2.3 ist eine Funktion integriert, die ein sogenanntes „Canonical Redirect“ ausführt. Auf das Strato-Problem bezogen bedeutet das, daß eine Weiterleitung z.B. dann stattfindet, wenn der Aufruf der Seite nicht so erfolgt, wie das in der WordPresskonfiguration eingestellt ist.
Wenn z.B in WordPress als Blog-Adresse (URL)

http://schnurpsel.de

eingetragen ist, jemand aber die Seite mit

http://www.schnurpsel.de

aufruft, wird er auf

http://schnurpsel.de

umgeleitet (und anders rum). An sich eine sinnvolle Sache, gerade unter SEO-Aspekten.

Was passiert nun aber bei Strato? Die funktion redirect_canonical schaut in HTTP_HOST nach, wie die Seite aufgerufen wurde, stellt fest, daß da ein www steht, aber das Blog ohne www konfiguriert ist. Also wird flux auf die Adresse ohne www weitergeleitet (diese Information bekommt der Browser zurück). Der ruft dann brav die Seite erneut ohne www auf, weil aber Strato das www wieder vorneran stellt, leitet redirect_canonical erneut um, der Browser ruft wieder brav ohne www auf usw. usw. Es ensteht also eine Weiterleitungs-Endlosschleife, die der Browser dann aber (hoffentlich) nach ein paar Versuchen mit einer Meldung beenden sollt. Beim Firefox sieht das dann so aus:

Fehler: Umleitungsfehler
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

Das alles tritt aber nur beim Blog selber auf, der Adminbereich ist davon nicht betroffen.

Lösung

Aber auch hier gibt es mit einem bißchen Basteln Abhilfe. Glücklicherweise gibt es in den Servervariablen einen Eintrag, der die tatsächlich aufgerufene Adresse enthält, nämlich SCRIPT_URI. Dieser enthält die vollständigen Aufrufadresse mit http und gegebenfalls Verzeichnis und Dateiname, z.B.

http://schnurpsel.de

Hier kann man einfach den echten Hostanamen extrahieren und der Variable HTTP_HOST zuweisen. Und schon ist die Welt wieder in Ordnung :-)

Also WordPress-Plugin sehen die paar Zeilen PHP-Code dann so aus:

<?php
/*
Plugin Name: 123 True HTTP Host
Plugin URI: http://schnurpsel.de/wordpress-23-problem-ohne-www-bei-strato-65/
Description: Setzt den wahren HTTP_HOST aus dem Request. Bei Strato wird immer www davor geschrieben.
Author: Ingo Henze
Version: 0.10
Author URI: http://putzlowitsch.de/
*/ 
$plw123thh = parse_url( $_SERVER['SCRIPT_URI'] );
if( isset( $plw123thh['host'] ) && ($plw123thh['host']!=$_SERVER['HTTP_HOST']) )
  $_SERVER['HTTP_HOST'] = $plw123thh['host'];
?>

Mann kann den Quelltext hier einfach rauskopieren, in einer Datei speichern,auf den Server in das Pluginverzeichnis kopieren und aktivieren. Oder man nimmt das fertige Plugin als ZIP-Datei.

Download: 123 True HTTP Host 0.10

Im Übrigen tritt das Problem mit der Weiterleitungs-Endlosschleife bei einer Konfiguration mit www nicht auf, allerdings funktioniert dann das redirect_canonical auch nicht, weil die Seiten ja scheinbar immer korrekt mit www aufgerufen werde.

116 Kommentare »

Strato wird vernünfig

Manchmal denkt man, man glaubt es kaum. Aber eben grade habe ich beim Rumexperimentieren bemerkt, daß Strato doch tatsächlich für die sonst eher etwas minderbemittelten PowerWeb-Pakete das memory_limit auf 16M erhöht und den safe_mode ausgeschaltet (off) hat. Jetzt fehlt nur noch, daß mod_rewrite unterstütz wird, dann sind einige Probleme mit Strato und WordPress wohl Zeitgeschichte.
In den FAQ steht es auch schon drin, zumindest beim ‚Wert‘, die ‚Beschreibung‘ ist noch nicht ganz passend. Wundert mich nur, daß die daß nicht an die große Glocke hängen, als Meldung auf Seite 1 oder so:

„Strato PowerWeb-Pakete mit mehr Power, jetzt 16MB Speicher und kein SafeMode für PHP“

Oder hab ichs etwa übersehen?

Keine Kommentare »

Strato Permalink-Plugin ist der Renner

Damit hatte ich nicht gerechnet. Mein ‚123 No Rewrite Permalink‘-Plugin (unbedigt die Anleitung lesen!) erfreut sich großer Beliebtheit. In den letzten drei Tagen wurde es bereits 4 mal runtergeladen. Na gut, davon waren zwei Downloads meine Tests, denn ich prüfe natürlich immer alles vorher, ob es auch funktioniert.

Könnte aber sein, das es tatsächlich bereits einen Nutzer gibt. Also falls jemand das erfolgreich bei seinem Strato-Blog im Einsatz hat, würde ich mich über eine kurze Rückmeldung mit Angabe der WP-Version, z.B. hier in den Kommentaren freuen. Oder ich schalte die Kommentare direkt bei der Beschreibungsseite frei. Ja, so werd ichs machen.

Natürlich sind auch Kritik, Problembeschreibungen oder Fragen jederzeit willkommen. Ob ich daruf eingegehen kann, weiß ich allerdings nicht ;-)

Keine Kommentare »

WordPress Permalinks bei Strato

So, ich hab das Plugin jetzt fertig gestellt und auch eine Beschreibung dazu geschrieben. Einfach rechts unter Seiten das gewünschte Thema auswählen. Wenn man sich nur für die Permalink-Geschichte interessiert, dann gleich zu WordPress Permalinks wechseln, oder wenn man WordPress ganz neu installieren will, kann man auch bei Vorbereitung Datenbank starten. Die Übersicht gibt es hier: WordPress bei Strato

Achso, das Wetter war heute ähnlich wie gestern. Sonne, Sonne, Sonne und Hitze.

Viel Spaß und Erfolg :-)

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »