Wordpress Feed-URL über mod_rewrite auf s9y umlenken

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
05282
Regular
Posts: 7
Joined: Tue Dec 05, 2006 10:46 am

Wordpress Feed-URL über mod_rewrite auf s9y umlenken

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

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

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
05282
Regular
Posts: 7
Joined: Tue Dec 05, 2006 10:46 am

Post 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!
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
05282
Regular
Posts: 7
Joined: Tue Dec 05, 2006 10:46 am

Post 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!
Post Reply