When I set up my blog, I configured it to use the ‘numeric’ permalinks that look something like http://www.brandonchecketts.com/archives/61
Of course, that is pretty straightforward, but it isn’t very readable, and we can probably get a few extra SEO points by putting the post’s title in the URL. However, just changing the permalink format is a bad idea since I have a bunch (okay, a few) incoming links that I don’t necessarily want to break.
So, I wrote a quick WordPress Plugin that redirects these old numeric links to my new format. Simply create a file named ‘numeric_permalink_redirect.php’ in your wp-content/plugins directory with this content:
<?php /* Plugin Name: BC Rewriter Plugin URI: http://www.brandonchecketts.com/ Description: Redirect old requests to new permalink format Author: Brandon Checketts Version: 1.5 Author URI: http://www.brandonchecketts.com/ */ // redirect old "numeric" type archives to our current permalin structure function check_numeric_permalink() { if(preg_match("/^/archives/([0-9]+)/", $_SERVER['REQUEST_URI'], $matches)) { $post_id = $matches[1]; $url = get_permalink($post_id); header("HTTP/1.1 301 Moved Permanently"); header("Location: $url"); exit; } add_action('init', 'check_numeric_permalink'); ?>
That will now do a 301 Permanent redirect to the new URL so that you shouldn’t lose anybody, and the search engines should change their incoming links.