I have a weird problem with moving a WordPress installation to a new server (just the server changes, domain remains the same, I’m currently accessing the site on the new server via the same domain and a hosts-file entry). Although the blog is displaying and I can access the admin area, there are no posts shown. The weird thing is, that the posts screen shows the correct statistics (“All (137) | Published (92) | Drafts (45)”) but the posts table says “no posts found”. On the frontend no posts are shown, but the “newer/older” links are shown and the archives list the months were posts were created. So it seems to find the posts, but somehow is missing some important information. I tried exporting/importing the DB with mysqldump/mysql on the command line and with phpmyadmin – same issue.
Did anybody experience this problem before?
Reset permalinks at Dashboard>>Settings>>Permalinks and be sure WP says it was able to make changes to the .htaccess file, or make the changes yourself it fails to write to .htaccess.
Did you change installed directories? I.e., from /wordpress/ to root? If so, see
http://codex.wordpress.org/Moving_WordPress
And if you moved to a Windows IIS server, be sure it’s set up to handle pretty permalinks: http://codex.wordpress.org/Using_Permalinks#Permalinks_without_mod_rewrite
Go into your admin and go to Settings/Permalinks, make sure your links are set as desired and hit save changes. Worked for me.
If you were hosting on a Linux box originally, chances are your tar or zip command didn’t include .htaccess. Resaving your permalinks option (or copying over your .htaccess) file should fix it.
For those of you who migrated to an Nginx server, you will need the following in your conf file to ensure that the permalink ends up being passed in a request with index.php.
I migrated from apache2 to nginx recently and this solved it for me.
Source: http://www.lowendguide.com/3/webservers/wordpress-permalinks-with-nginx/