Vor kurzem bin ich ja von Serendipity auf Drupal umgestiegen. Dadurch haben sich natürlich auch meine RSS-Feeds geändert. Durch die Ankündigung im Blog hatte ich zwar gehofft, daß die meisten Subscriber von sich aus auf die neuen Feeds umsteigen, aber so wie es ausschaut, gibt es immer noch einige, die den alten Feed suscribed haben. Also muss ich mir nun etwas mit mod_rewrite basteln. Der alte Feed hatte die folgende URL:
http://bluespice.dyndns.org/index.php?/feeds/index.rss2
Die neue Feed-URL ist hingegen:
http://blog.windfluechter.net/blog/feed
bzw.
http://blog.windfluechter.net/index.php?q=/blog/feed
Drupal benutzt also bereits selber Rewrites, um von der langen URL in die kurze Form (ohne "index.php?q=") zu kommen. Ich habe es dann mal mit folgender Konfiguration im Apache versucht:
RewriteEngine on
RewriteCond %{QUERY_STRING} &?/feeds/index\.rss2
RewriteRule ^index\.php\?/feeds/index\.rss2$ http://blog.windfluechter.net/blog/feed [L,PT,R=301]
Das funktioniert nur leider nicht. Laut Apache Doku muss die RewriteCond auf den Query String sein. Anstatt aber den Query-String umzuschreiben, will ich ja nur auf eine andere URL weiterleiten.
Hat jemand einen Tipp für ein Rewrite, das auch noch funktioniert?
UPDATE 23.10.2010:
Eigentlich war es nun doch ganz einfach. Folgende Zeilen scheinen nun wohl zu funktionieren:
RewriteCond %{QUERY_STRING} /feeds/index\.rss2
RewriteRule ^/ /blog/feed? [R]
das schaut mir nach der
das schaut mir nach der falschen doku-ecke aus. hast du mal auf http://httpd.apache.org/docs/2.2/misc/rewriteguide.html unter dem punkt “Filesystem Reorganization” nachgeschaut?
lg,
der berliner
Ja, das hatte ich schon
Ja, das hatte ich schon einmal vor dem Schreiben des Artikels gelesen, aber auch hier gilt: das Problem ist der Parameter, der anders gehandhabt wird wie ein (Datei-)Pfad.
http://drupal.org/project/pat
http://drupal.org/project/path_redirect
hth Thoor
Hmmm, hab ich eben mal
Hmmm, hab ich eben mal ausprobiert, aber das funktioniert auch nicht, vermutlich eben, weil das ganze, wie bereits erwaehnt, als Parameter und nicht als URL/Path angesprochen wird.