I've had this issue several times now. While building a site, including some content, I keep WordPress in a subdirectory (say, /wordpress/). When putting it live, I move/copy 3 files out of the dir into the root, in accordance with the WordPress specifications here: http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Using_a_pre-existing_subdirectory_install

It works, but all the links already entered in content refer to /wordpress/bla/bla and will, after the move, return 'file not found'. Also, links previously sent in emails and links already indexed by Google will return file not found.

My question: Is this behaviour as designed, or am I doing something wrong?

Please note: My question is not how to fix it. It's easy enough to add some lines to the root .htaccess to say, "for every request inside /wordpress/, if it doesn't exist, remove the word /wordpress/ and try again," so I'm surprised WordPress doesn't do that by itself. This makes me think I'm doing something wrong.

  • There is really cool plugin you can use - Velvet Blues. It will change old links to new ones.
    – Fresz
    Jan 25, 2020 at 23:02

2 Answers 2


You're not doing anything wrong. WordPress does not monitor the links within content, so it's up to you to change them when your structure changes.

  • well .. ok. so the issue sounds familiar ? i'm wondering why wordpress doesnt just add a rewriterule for in-directory links; it shouldnt have to change the content.
    – commonpike
    Feb 8, 2013 at 17:23
  • It's familiar. I usually go into PHPMyAdmin and run a couple of queries directly to update the links. Obviously one should back-up the DB before doing this or do a test run first.
    – vancoder
    Feb 8, 2013 at 17:25

In the past, we used a "Search and Replace" plug-in for WordPress to mass change the content of a site that was moved to a new hosting server.

Not sure if this plug-in will work for you, but you can give it a try:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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