Technische tip voor bloggers: leid je RSS-feed om

Af en toe lees ik op een blog: "het adres van mijn RSS-feed is gewijzigd, gelieve jullie feedreader aan te passen". Ik las het een tijdje geleden bij Ine en Fré. Of neem nu Veerle Pieters: maar liefst 813 mensen zijn via Bloglines geabonneerd op een RSS-feed die niet meer werkt sinds haar nieuwe layout (en die mag er zijn!) online staat.

Nochtans bestaat er een eenvoudige oplossing om ervoor te zorgen dat een oud adres blijft werken, doordat je het automatisch (en al dan niet "heimelijk") laat doorverwijzen naar een nieuw adres.


Er zijn wel een drietal voorwaarden: je moet bestanden kunnen uploaden naar het root-directory van je weblog (blogspot.com valt hiermee al uit de boot); de webserver moet URL rewriting ondersteunen (Apache: geen probleem, Microsoft IIS: add-on moet geïnstalleerd zijn/worden, zoals ISAPI_Rewrite, IIS-rewrite of OpURL); en je hosting-provider mag de URL rewriting mogelijkheid niet uitgeschakeld hebben. Laten we veronderstellen dat aan al deze voorwaarden voldaan is. Probeer het gewoon, lukt het niet dan heb je pech.

De oude URL van je RSS-feed is bijvoorbeeld http://mijnblogske.be/oudefeed, en de nieuwe is http://mijnblogske.be/nieuwefeed. Het nieuwe adres kan zich ook gerust op een ander domein bevinden, zoals bij feedburner.com. Je wil dat alle mensen die geabonneerd zijn op je oude feed, automatisch je nieuwe feed binnenkrijgen zonder dat ze ook maar iets aan hun instellingen hoeven te veranderen. Om dat te verwezenlijken, upload je gewoon een bestand met de naam .htaccess naar je server met volgende inhoud:

RewriteEngine On
RewriteRule ^oudefeed$ nieuwefeed [R]


Dus, Veerle:

RewriteEngine On
RewriteRule ^index.xml$ index.php/blog/rss/ [R]


Veel uitleg valt daar niet bij te geven. De eerste regel schakelt de RewriteEngine van de webserver in, de tweede regel leidt de oude URL (maar dan zonder de hostnaam) om naar de nieuwe. De R tussen vierkante haken forceert een HTTP redirect, waardoor de gebruiker de omleiding ook effectief ziet (zonder die [R] is de omleiding louter een interne zaak van de webserver, en lijkt het voor de eindgebruiker alsof de oude URL echt blijft werken). Die [R] is niet echt nodig als je binnen hetzelfde domein omleidt, maar absoluut nodig als je naar een ander domein omleidt.

Verifieer eerst even of er nog geen .htaccess-bestand aanwezig is in de root directory van je webspace. Zo ja, voeg bovenstaande code dan toe aan dat bestand, bijvoorbeeld onderaan. Staan er al rewrite-rules in die .htaccess, voeg dan enkel de RewriteRule van hierboven toe aan de regels die er al staan.

Wil je redirecten naar Feedburner, dan zit er wel nog één addertje onder het gras: Feedburner zélf moet natuurlijk wel nog je oorspronkelijke feed kunnen bereiken, maar alle gewone gebruikers moeten automatisch naar Feedburner worden doorverwezen. Dat doen we als volgt:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^oudefeed$ http://feeds.feedburner.com/nieuwefeed [R]


We hebben één regeltje toegevoegd, waarin we testen of de naam van de browser niet gelijk is aan "Feedburner".

Uiteraard kan je dit mechanisme ook toepassen voor andere doeleinden dan het omleiden van RSS-feeds.

Meer weten? De technische documentatie staat hier.

Reacties

#19368

florisla

 

Luc, ik snap niet goed waarom je URL rewriting nodig hebt om een simpele permanente redirect te doen?

Bij mij werkt het volgende ook in de .htaccess :

redirect 301 /oude/folder/ http://www.nieuwdomein.be/n...
redirect 301 /oude/folder http://www.nieuwdomein.be/n...

#19384

Matthias

 

Luc, dank je, ik vroeg mij vanmorgen juist af hoe ik zoiets zou kunnen aanpakken moest ik het nodig hebben...

#19386

LVB

 

@florisla: Voor het omleiden naar een ander domein komen beiden inderdaad op hetzelfde neer.

Doe je echter een omleiding binnen hetzelfde domein (zelfde host), dan is een internal rewrite (dus zonder de [R] in de rewrite rule) eigenlijk een ietsje sneller dan een redirect, omdat er geen bijkomende HTTP request gegenereerd wordt.

#19387

LVB

 

Intussen werkt de oude RSS-feed van Veerle weer perfect via Bloglines. Er was wel een mailtje nodig naar Bloglines, want als een feed te lang niet bereikbaar is, stoppen ze blijkbaar met proberen.

#19424

Hans Verreyt

 

Bedankt, eindelijk kon ik hiermee een oud probleempje oplossen!

#62036

CiNNeR

 

Oude posting maar de oplossing werkt nog prima! Tnx.

#82179

Servé

 

Hoi,

ik citeer even een stelling uit het bovenstaande: je moet bestanden kunnen uploaden naar het root-directory van je weblog (blogspot.com valt hiermee al uit de boot);

Het webmasterhulpprogramma van Google adviseert me om mijn robots.txt bestand in de root van mijn blogsite (blogspt.com) te vervangen. Als ik jullie goed begrijp (en dat is ook mijn ervaring tot dusver) kan ik niet in de root geraken? Waarom eigenlijk niet?