I've had this problem a couple of times, and the cause can be varied, from htacess to permission error. I always take a few steps to try to solve:
Step I:
Make sure the site URL is correct in the database, you can find it in the wp_options table with option_name : siteurl ( usually the first field).
If the URL is different you can update it by using this from Github by entering code generated in the SQL field of your database, or add the following code in the wp-config.php file:
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');
and / or code below in the functions.php file:
update_option('siteurl', 'http://example.com');
update_option('home', 'http://example.com');
I usually use github's source, but when I use this second way I use both methods to force the exchange, you can look at Codex .
Step II:
If it is an htacess bug, you can solve it by just updating the permanent link on the site.
Try to access one of the internal "pages" of your admin panel, such as plugins using this URL:
link
If you can access, go to permanent links or options-permalink (if the language is English), and just update the form saving your changes. This will force your htacess to be updated.
Step III:
If the previous steps did not work, I suggest that you move the site to the root if it is inside a sub-folder, for example "new" or "temp", and try to "reupload" the file. htacess .
If none of the above works, check the permission of the files, for folder 0775 and for files 0644.