Mehrere WordPress Blog-Feeds an Google Feedburner weiterleiten

Ich habe eine Zeitlang das FD Feedburner Plugin for WordPress auf meinem Plugin eingesetzt, um meinen Artikel-Feed sowie meinen Kommentar-Feed auf Feedburner weiterzuleiten. Jetzt ist mir aber aufgefallen, dass das keine optimale Lösung war. Der Hauptgrund war, dass ich meinen Blog mit Hilfe des qTranslate Plugins in zwei Sprachen anbiete. Somit kann auch der Feed in diesen zwei Sprachen abonniert werden. Genau hier stört allerdings das Plugin. Der englische Feed wird durch den Parameter ?lang=en aufgerufen, das Plugin beeinflusst allerdings alle Feed, also auch solche mit Parametern.

Da es keine Möglichkeit gab dies über das Plugin zu lösen, habe ich mir eine eigene, aber gleichzeitig auch sehr einfache und erweiterbare Möglichkeit überlegt. Die Lösung für das Problem ist die Anpassung der .htacces Datei. Dies hat auch den Vorteil, dass dazu alle Links zum Feed umgeleitet werden, unabhängig davon, wo sie auftauchen. Die .htaccess sieht in meinem Fall wie folgt aus:

# BEGIN Feedburner feed rewrites
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^feed$ http://feeds.feedburner.com/Kau-boysBlog_en [L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^feed$ http://feeds.feedburner.com/Kau-boysBlog [L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^comments/feed$ http://feeds.feedburner.com/CommentsForKau-boysBlog [L]
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^comments/feed$ http://feeds.feedburner.com/Kommentare-Fuer-Kau-boys-Blog [L]
</IfModule>
# END Feedburner feed rewrites

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Interessant ist hier der erste Abschnitt der .htaccess, der untere wurde automatisch von WordPress erzeugt und kann sich von eurem unterscheiden, je nachdem welche Permalink Struktur ihr gewählt habt. Wichtig zu erwähnen ist hierbei auch, dass mein Blog nicht in einem Unterordner wie „wordpress“ oder „blog“ liegt, sondern auf höchster Ebene der Domain, also direkt im „httpdocs“ Order sollte euer Blog in einem Unterordner liegen, müsst ihr diesen entsprechen in den Zeilen 7, 9, 12 und 14 angeben. Sehr wichtig ist auch das „^“ am Anfang der RewriteRule, damit nicht jeder Feed-Link durch Zeile 9 umgeleitet wird. Auch das „[L]“ am Ende solltet ihr nicht vergessen, damit das Rewriting nach der entsprechenden RewriteRule abgebrochen wird und nicht durch eure Permalink-Rules nachträglich beeinflusst wird.

UPDATE: Wie ich heute auf der Feedburner Website erfahren habe, muss zusätzlich die Zeile RewriteCond %{HTTP_USER_AGENT} !FeedBurner vor jeden Rewrite eingefügt werden, da Feedburner selbst auch den Feed lesen können muss. Somit darf der User-Agent FeedBurner natürlich nicht auf sich selbst weitergeleitet werden.

Die Feed selbst müsst ihr natürlich noch bei Feeburner „burnen“, damit ihr sie hier auch verwenden könnt. Die RewriteRule könnte in abgewandlet Form auch für andere Parameter verwendet werden. Wenn ihr beispielsweise pro Kategorie einen Feed anbieten möchtet, wäre folgende Zeile sinnvoll:

RewriteRule ^category/(.*)/feed$ http://feeds.feedburner.com/YourFeed_$1 [L]

Mit dieser Zeile könnt ihr dann alle zukünftigen Kategorien von eurem WordPress Blog an Feedburner weiterleiten. Selbstverständlich müsst ihr auch hier zuvor jeden Feed bei Feedburner „burnen“ und dabei dann einen Namen wie z.B. YourFeed_Allgemein verwenden. Die Links zu den Kategorie-Feeds könnt ihr dann über euer Template entsprechend zusammenstellen lassen.

Ich hoffe, dass euch der Tipp weiterhelfen konnte. Wenn ihr Fragen dazu habt oder ihr vielleicht ein Plugin kennt, das die beschriebene Funktionalität ohne eine Änderung der .htaccess bietet, würde ich mich wie immer über einen Kommentar freuen.

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugins, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

1 Kommentar » Schreibe einen Kommentar

  1. Genauso habe ich das auch gelöst in einem von mir betreuten Blog. Dieser Blog bietet auch über qtranslate unterschiedliche Sprachen an. Bisher funktionierte diese Lösung sehr gut.

    Allerdings habe ich jetzt schon zweimal das Problem gehabt, dass die .htaccess von einem Plugin überschrieben worden ist und dadurch die Anpassung für den Feedburner weg waren.

    Als Ursache konnte ich das Plugin für die XML-Sitemap ausmachen. Das habe ich jetzt wieder entfernt, aber das kann auch keine Lösung sein.

    Ich hoffe, ich finde noch einen komfortableren Weg als den über die htaccess.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert