Lighttpd url-redirect for Wordpress Permlink changes

I changed my wordpress blog entry permlink format. But some link to my blog exists on Internet doesn’t work which results in a HTTP 404 error.

Why redirect is better then rewrite

Someone may have the same question, but take it easy, it depends on your decision.

But rewrite has it’s benefits also, existed link will work without any changes. RSS feed, your live writer(maybe you prefer Word2007? :P) will still work, no need to change the configuration.

I want all visitors include search engine spiders get to know that the permlink changes, that’s why I choose redirect, not rewrite.

Draft conf, simple and ugly

For example, http://feuvan.net/wordpress/?p=107 now should be http://blog.feuvan.net/index.php/2007/03/10/win-ce-platform-builder-60-evalutation-offline-download.html, then I have to configure my lighttpd configure like these.

$HTTP[“url”] =~ “^/wordpress” {
url.redirect =(
“^/wordpress/(.*)$” => “http://blog.feuvan.net/index.php/$1”
)
}
>
>

But some links like http://feuvan.net/wordpress/index.php?p=56 will be redirected to http://blog.feuvan.net/index.php/index.php?p=56, it’s ugly, er……

More clean conf file

So here we have a newer configure file:

$HTTP[“url”] =~ “^/wordpress” {
url.redirect =(
“^/wordpress/index.php?(.)$” => “http://blog.feuvan.net/index.php/$1”,
“^/wordpress/(.
)$” => “http://blog.feuvan.net/index.php/$1”
)
}
>
>

Now the old link will be redirected to http://blog.feuvan.net/index.php/?p=56.

Furthermore

Wait, why not redirect to the new permlink directly?

Maybe I can throw out a solution.

NOTE:

You should enable mod_redirect to make the configuration works for you.

The article is specified to lighttpd 1.4.x series.