Migrating Old Permalinks to WordPress
Now that I migrated to WordPress for blogging, the permalinks of my previous blog entries have changed.
For example:
/article_php_5_enterprise_edition_available_online
changed to:
/2006/11/26/article-php-5-enterprise-edition-available-online/
My initial idea was to use mod_rewrite by adding a RewriteRule for each old link redirecting to the new location, but that looked like a lot of copy&paste to me and would not teach me anything new.
Instead, I chose to redirect requests for old links to the WordPress search page. Try it out yourself: Click on this old permalink /article_php_5_enterprise_edition_available_online and you will be redirected to the search page, which displays the blog entry to you as a search result. This looks like a more flexible solution to me, just in case that my permalinks might change again one day.
The implementation was simple. I added a few lines of PHP code to the 404.php page of my WordPress theme as described in the support topic 404 Search Function for WordPress. I also added a header redirect directive.
This is the full code:
-
// Adjust if WordPress is located in subdirectory,
-
// e.g. www.example.com/weblog. Otherwise leave empty.
-
$blog_uri = 'weblog';
-
-
// Don't change from here.
-
$search_url = $blog_uri.'/?s=';
-
$replace = " " ;
-
-
// Redirect to search page.
-
exit;
Notice that for security reasons, I use urlencode() for the search page URL to avoid HTTP Response Splitting.










May 19th, 2008 at 6:08 pm
naked a 1 night in Paris Hilton exposed…
Recently leaked footage of the new Paris Hilton sex tape…