Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

In WordPress 3.1 a post can be reached a number of ways, for example each one of these takes you to the same post (where /id is the base)

http://myblog.com/id/1008
http://myblog.com/id/1008/my-slug
http://myblog.com/my-slug

How can I tell WordPress to redirect all of these variations to

http://myblog.com/id/1008/my-slug

?

share|improve this question
add comment

4 Answers

up vote 1 down vote accepted

Check whether the posts not being redirected actually have the correct permalink stored in the DB. There's a bug in which canonicals can't be properly guessed because the permalink structure was CHANGED after the post was created.

Try either creating a new post with your current permalink structure, or editing the post_name DB field for them. (There's a plugin for updating the permalinks in DB)

The question remains. ASSUMING it is still happening:

How do we FORCE wordpress to REDIRECT to the canonical url? No just adding a link to it, but REDIRECTING to that page.

I changed the permalinks structure of the site, and added a add_rewrite_rule in functions.php, so now the old /02/20/2008/postname addresses are accepted and canonicalized as /blob/postname correctly… and the page is found successfully.

But no matter what I do, the canonical just stays as a link in the old URL'd page, still showing the wrong url in the adress bar.

NO REDIRECT is performed.

Ive worked with another website before, and I ended up (after days of trying tens of different pieces of code) using .htaccess redirects.

I know .htaccess redirects will work, but now that I read everywhere that "It should" be doing it… I'm wondering: Should it? and more exactly "how do I FORCE it?

share|improve this answer
add comment

WordPress should do this automatically. Whatever permalink format you have set in Settings > Permalinks should be the URL visitors end up at when they come to a different URL that indicates the same content.

share|improve this answer
add comment

I use a plugin called Redirection (http://urbangiraffe.com/plugins/redirection/) that allows me to set up rules for url redirection. This might suit your needs if you can't get WordPress to do what you want.

James :-)

share|improve this answer
add comment

wordpress does it automatically there is no need to do any thing if you have a custom structure defined in the settings->permalinks it will automatically redirect all the incoming structures to your custom structure or the one you have chosen in the settings in wp back end

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.