25
2007
Transparently Feedburning Pebble with UrlRewriteFilter
I’ve been looking for a chance to play with UrlRewriteFilter for a while.. and I’ve finally found my opportunity.
A colleague has been talking up FeedBurner as a very swish feed stats crunching and decoration site, so I was keen to take it for a spin. I was asking how to handle the fact that you would need all your clients to add the new feed address? He mentioned that WordPress can do this with a simple plugin, so I figured I could get Pebble to work the same magic.
Enter UrlRewriteFilter. Catch the old feed address, send a redirect to the FeedBurner address, voila.
Deploying UrlRewriteFilter is a snap. Copy the jar file to your /WEB-INF/lib/ directory, copy a urlwrite.xml to your /WEB-INF/ directory, then hack web.xml to enable the filter. If you’re doing this for Pebble, insert the following entries after the jsp-config section of your web.xml:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confReloadCheckInterval</param-name>
<param-value>3600</param-value>
</init-param>
</filter>
Probably don’t need the added “reload every hour” parameter unless you plan on messing with your config. I had it reloading its config file every few seconds when I was messing with pattern matching.
Now to the pattern matching part of the equation. I needed to match a pattern of /glen/rss.xml or /glen/atom.xml and send the user off to http://feeds.feedburner.com/glensmith, but the trick was that I needed to exclude all my category specific feeds in /glen/categories/General/rss.xml. Oh, and I also need to let a User-Agent containing the text “FeedBurner” through to the real feed, while redirecting everyone else. Turns out all that’s supported out of the box. Here’s my urlrewrite.xml:
<rule>
<note>
Redirect Root RSS/Atom feed to feedburner
</note>
<condition name="user-agent" operator="notequal">FeedBurner</condition>
<condition type="request-uri" operator="notequal">categories</condition>
<condition type="request-uri" operator="equal">glen</condition>
<from>.xml$</from>
<set type="response-header" name="Location">http://feeds.feedburner.com/glensmith
<set type="response-header" name="Pragma">no-cache</set>
<set type="response-header" name="Content-Length">0</set>
<set type="status">307</set>
</rule>
Fantastic. I’m now transparently redirecting clients to the new location, and with those pragma settings, I’m able to switch everything off in a flash. And it’s a ton more configurable than any ServletFilter that I could have whipped up for the task.
Great stuff UrlRewriteFilter folk!
Leave a comment
Glen Smith
Archives
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen




