Usually in this scenario a user can access their WordPress admin area, their blog’s main page, but when accessing a single posts they get a 404 Not found error. First of all, don’t panic most of the time your posts are still there and completely safe. This usually happens if your .htaccess file got deleted or something went wrong with the rewrite rules. What you need to do is fix your permalinks settings.
Go to Settings » Permalinks, and simply click on Save Changes button.
This will update your permalinks settings and flush rewrite rules. In most cases this solution fixes the WordPress posts 404 error. However, if it does not work for you, then you probably need to update your .htaccess file manually.
Login to your server using FTP, and modify the .htaccess file which is located in the same location where folders like /wp-content/ and /wp-includes/ are located. The easiest thing you can do is to temporarily make the file writeable by changing the permissions to 666. Then repeat the original solution. Don’t forget to change the permissions back to 660. You can also manually add this code in your .htaccess file:
01 # BEGIN WordPress
02 <IfModule mod_rewrite.c>
03 RewriteEngine On
04 RewriteBase /
05 RewriteRule ^index\.php$ – [L]
06 RewriteCond %{REQUEST_FILENAME} !-f
07 RewriteCond %{REQUEST_FILENAME} !-d
08 RewriteRule . /index.php [L]
09 </IfModule>
10 # END WordPress