A Wordpress broken link helper

Just an example.

For wordpress ppl who changed their perm link.

postmeta, $wpdb->posts WHERE ID=post_id “.
“AND YEAR(post_date) = $year AND MONTH(post_date) = $month AND DAYOFMONTH(post_date) = $mday “.
“AND post_name = \”$post_name\” LIMIT 1”;

$id = (int)$wpdb->get_var($query);
$link = get_permalink($id);
if ($link) wp_redirect($link, '301'); // Permanent redirect

$query = "SELECT ID FROM $wpdb->posts WHERE ".
    "YEAR(post_date) = $year AND MONTH(post_date) = $month AND DAYOFMONTH(post_date) = $mday ".
    "AND post_name = \"$post_name\" LIMIT 1";
$id = (int)$wpdb->get_var($query);
$link = get_permalink($id);
    if ($link) wp_redirect($link, '301'); // Permanent redirect

$link = "/$year/$month/$mday/";

if (strstr($_SERVER["HTTP_USER_AGENT"], "Mozilla") === FALSE) // if it's not a user
{
    wp_redirect($link, '302');
}

?>

The permant link changes, however broken link helper can’t solve it automaticlly, it will redirect you to the date archive page. It would be nice if you can report broken links to feuvan#feuvan.net.

Corresponding nginx configuration block:


server {
listen 80;
server_name blog.feuvan.net;

root /home/feuvan/wwwdata/blog;
index index.php;
if (-e $request_filename) {
break;
}

rewrite ^/index.php/(.+)$ /index.php?q=$1 last;
rewrite “^/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^\d].|\d+[.^-]).html” /brokenlinkhelper.php last;
#rewrite ^/(.+)$ /index.php?q=$1 last;
rewrite ^/ /index.php last;

location ~ .php$ {
fastcgi_pass unix:/tmp/php.sock;
}
}

Hope it helps.