Page 1 of 1

Wordpress Feed-URL über mod_rewrite auf s9y umlenken

Posted: Tue Dec 05, 2006 11:01 am
by 05282
Hallo,

ich habe über die Forensuche leider nur einen alten thread ohne Lösung gefunden und Google hat mir zwar viel über mod_rewrite beigebracht, aber leider nichts was funktioniert hätte. :)

Von daher meine Frage an euch.. Ich habe von Wordpress zu Serendipity gewechselt und hätte nun gern, dass meine User die Feeds nicht aktualisieren müssen.

Die Feed-URL die bei Wordpress aufgerufen wurde sah so aus:
http://domain.tld/?feed=rss2

Meine Versuche diesen Aufruf über mod_rewrite umzulenken scheiterten leider alle kläglich. Es erscheint immer dir Startseite.

Mein vielversprechendster Ansatz war:

Code: Select all

RewriteRule ^\?feed=rss(.*) rss.php?version=2.0 [L,QSA]
Naja, leider passiert dabei mal gar nichts. :(

Hat jemand einen Tipp?

Gruss, Niklas

Re: Wordpress Feed-URL über mod_rewrite auf s9y umlenken

Posted: Tue Dec 05, 2006 12:37 pm
by garvinhicking
Hi!

Das wird leider ein Problem. Die Ursache ist, dass deine alte URL keine "pretty URL" war die man weiterleiten kann/konnte, sondern eine die per index.php funktioniert.

mod_rewrite ist schwierig zu bedienen wenn man etwas abhängig von GET-Variablen verändern will. Das geht irgendwie, aber das weiß ich selber nicht.

Wenn Du eine URL wie "domain.tld/?blabla" aufrufst wertet Apache erstmal intern die DirectoryIndex direktive aus und macht dann aus deiner URL "domain.tld/index.php?blabla". Evtl. klappt es also wenn deine rewrite-rule so aussieht:

Code: Select all

RewriteRule ^index\.php\?feed=rss(.*) rss.php?version=2.0 [L]
Die andere Möglichkeit ist, dass Du einfach ausnutzt dass der WP-Feed auf deine neue s9y index.php läuft. Entweder Du schreibst ein Plugin was die "feed=rss" Variable auswertet, oder Du packst so etwas direkt und dirty in deine index.php:

Code: Select all

if ($_REQUEST['feed'] == 'rss2') {
  header('Location: http://domain.tld/rss.php?version=2.0');
}
HTH,
Garvin

Posted: Tue Dec 05, 2006 12:50 pm
by 05282
So hat es funktioniert:

Code: Select all

$wp_feed = strip_tags($_REQUEST['feed']);

if ($wp_feed == 'rss2') {
  header('Location: http://domain.tld/rss.php?version=2.0');
  exit():
}
Das exit(); musste mit rein.

Tausend Dank!

Posted: Tue Dec 05, 2006 12:55 pm
by garvinhicking
Hi!

Ah, ich Dummy, natürlich. Exit braucht man auch noch.

Die mod_rewrite-Idee hat nicht gezündet?

Tausend Dank übrigens für deine Paypal-Spende. Das wäre doch nicht nötig gewesen - aber da freut sich der Nikolaus :) :)

Viele Grüße,
Garvin

Posted: Tue Dec 05, 2006 1:07 pm
by 05282
garvinhicking wrote:Die mod_rewrite-Idee hat nicht gezündet?
Leider nein, hab gelesen man kommt nur über eine RewriteCondition an GET-Variablen, nicht über eine Rule. Da ich nur alle Jubeljahre mal mod_rewrite verbaue kam ich da nicht so wirklich weiter.
garvinhicking wrote:Tausend Dank übrigens für deine Paypal-Spende. Das wäre doch nicht nötig gewesen - aber da freut sich der Nikolaus :) :)
Gern. :) Du hast mir schon ein paar Mal weitergeholfen und ich habe s9y bei mittlerweile vier Leuten laufen. Da war das das mindeste. :D

Wenn ich doch noch auf eine über mod_rewrite funktionierende Lösung stosse poste ich sie hier. Habe nur momentan keine Zeit mich damit intensiver zu befassen, die Arbeit frisst mich. *g*

Grüsse!