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.
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.
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:
http://wordpress.org/extend/plugins/search-and-replace/