AdWz WP-Plugin 5 – 200 OK

(AdWz; Auf dem Weg zum) WP-Plugin 5 – 200 OK

Zurück zum eigentlich Ziel, ein Plugin um über eine eigene Fehlerseite das Modul „mod_rewrite“ umgehen zu können.

Im ersten Schritt soll das Plugin alle Anfragen mit dem HTTP-Code 200 OK beantworten. Der beschriebene Hack im Beitrag WordPress NoRewrite & 404 wird duch dieses Plugin nicht mehr benötigt.

Die Integration über die WordPress-Plugin-API kann über einen Filter oder Aktion erfolgen. Da die Beiträge durch dieses Plugin nicht verändert werden sollen, wird eine geeignete Aktion gesucht (siehe AdWz WP-Plugin 4 – Hooks). Viele mögliche Aktionen werden auf der Seite Liste der Aktionen aufgelistet. Für die Auswahl der richtigen Aktion müssen das Protokoll HTTP und die spätere 404-Behandlung berücksichtigt werden. Die Aktion „template_redirect“ erfüllt beide Bedinungen.

Das Protokoll HTTP beschreibt die Kommunikation zwischen dem Client (Browser) und Server (WordPress). Der HTTP-Status-Code muss laut dieser Spezifikation als erstes (vor allen Anderen) gesendet werden. Zusätzlich für die spätere 404-Behandlung muss eine Möglichkeit zur Auswertung vorhanden sein.

Die WordPress-Plugin-API beschreibt die Aktion „template_redirect“ wie folgt.

Die Aktion „template_redirect“ wird vor der Auswahl der Vorlage zum Beantworten der Anfrage ausgeführt.

Die Anforderung des HTTP-Protokolls wird erfüllt, da noch keine Antwort gesendet wurde. Die 404-Behandlung kann später berücksichtigt werden, da WordPress kurz vor der Vorlagenauswahl die Anfrage verarbeitet hat und die Information zur Verfügung stellt.

Die folgende Funktion überschreibt den vom Webserver generierten HTTP-Status-Code.

function sendHTTPCode () {
   header("Status: 200 OK");
}

Bei der zuvor ausgewählten Aktion „template_redirect“ wird die Funktion bei WordPress angemeldet.

add_action('template_redirect', 'sendHTTPCode');

Die erste Version des Plugins ist fertig.

mg404Rewrite Version 0.1

Installation:

Die heruntergeladene Datei in das Verzeichnis $WP_HOME/wp-content/plugins/ entpacken und über die Plugin-Verwaltungsseite aktivieren. Manuell muss noch die Datei „.htaccess“ angepasst (WordPress NoRewriteWorkaround) und bei geänderter „index.php“ die Zeile mit „header …) entfernt werden.

Das Plugin funktioniert mit der WordPress Version 2.2.3 beim Provider Strato (www.strato.de).

Tags: , ,

Hinterlasse eine Antwort