WordPress is giving me 404 page not found for all pages except the homepage

Wordpress

Wordpress Problem Overview


All of a sudden I go to my WordPress website and all the pages give me a 404 page not found page. I'm assuming the problem lies with the permalink structure, which I could swear I did not touch. The permalink setting is on "month and name."

I've researched similar instances of this problem online and a lot of it has to do with the .htaccess file? I tried finding, but I can't. Perhaps it got deleted somehow? Where is it supposed to be located.

Any suggestions will be helpful

and of course I can see hidden files.

Wordpress Solutions


Solution 1 - Wordpress

.htaccess is a hidden file, so you must set all files as visible in your ftp.

I suggest you return your permalink structure to default ( ?p=ID ) so you ensure that .htaccess is the problem.

After that, you could simply set "month and name" structure again, and see if it works.

PS: Have you upgraded to 3.1? I've seen some people with plugin issues in this case.

Solution 2 - Wordpress

Basically the .htaccess file should exists and the httpd.conf should be correct.

In my case, I changed the file /etc/apache2/apache2.conf in section:

<Directory "/var/www/html">

Line changed is:

AllowOverride None

to

AllowOverride All

And restart the web server with

systemctl restart apache2

Solution 3 - Wordpress

Fixing that problem is very simple if you was using permalinks other than the default such as Day and name, Month and name, Numeric, Post name or Custom Structure, you only need to

Login to your admin area: Settings > Permalinks which should be : http://yoursite.com/wp-admin/options-permalink.php

Choose Default permalink setting, then save changes

Then you can return it again to your other previous permalink choice or keep it as default as yo wish

Note that this problem can happen when you move your site from a domain or location to another one.

Solution 4 - Wordpress

If the default behavior (example.com/?p=42) is working, you should:

  • Change to your preferred permalink style: Admin: Settings > Permalinks, and click Save. Sometime it fixes the issue. If it didn't:

  • Verify that the file /path/to/wordpress/.htaccess has been changed and now includes the line RewriteEngine On. If it doesn't include the line, it's a Wordpress permissions issue.

  • Verify that the 'rewrite' module is loaded: create a PHP file with

      <?php
        phpinfo()
      ?>
    

in it, open it in the browser and search for mod_rewrite. It should be in the 'Loaded Modules' section. If it's not, enable it - Look at your apache default index.html file for details - in Ubuntu, you do it with the helper a2enmod.

  • Verify that apache server is looking at the .htaccess file. open httpd.conf - or it's Ubuntu's alternative, /etc/apache2/apache2.conf. In it, You should have something like

      <Directory /path/to/wordpress>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
      </Directory>
    
  • After making these changes, don't forget to restart your apache server. sudo service apache2 restart

Solution 5 - Wordpress

IF all this dont work, your .htaccess is correct, and permalinks trick didnt work, you may have not enabled your apache2 rewite mod.

I ran this and my issue was solved:

 sudo a2enmod rewrite 

Solution 6 - Wordpress

Within the WordPress admin interface do the following:

  1. Go to admin setting

  2. Click on permalink and select post name in radio button.

  3. Scroll down and you will see .htaccess code here like.

     <IfModule mod_rewrite.c>
         RewriteRule ^index\.php$ - [L]
         RewriteCond %{REQUEST_FILENAME} !-f
         RewriteCond %{REQUEST_FILENAME} !-d
         RewriteRule . /wordpress/index.php [L]
     </IfModule> 
    
  4. Copy the code and paste in the .htaccess file.

Solution 7 - Wordpress

This error is causing due to disabled of rewrite mod in apache httpd.conf document ,just uncomment it and enjoy the seo friendly permalinks

Solution 8 - Wordpress

  • Check that the directory on .htaccess are the correct
  • Check the fields "siteurl" and "home" are the correct

Solution 9 - Wordpress

We had the same problem and solved it by checking the error.log of our virtual host. We found the following message:

> AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, > so the RewriteRule directive is also forbidden due to its similar > ability to circumvent directory restrictions : > /srv/www/htdocs/wp-intranet/

The solution was to set Options All and AllowOverride All in our virtual host config.

Solution 10 - Wordpress

If you have FTP access to your account:

First, login to your wp-admin and go to Settings > Permalinks

You should see something at the bottom that says:

"If your .htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all."

If this is true do the following:

  1. Go into preferences for your FTP client and make sure hidden files are displayed (varies depending on your FTP client) - If you don't do this you won't be able to find your htaccess file

  2. Go to the folder that your wp-admin, wp-content, wp-includes directories are located. Check for .htaccess file. If it exists skip to step 4

  3. If it does not exist, create a new blank file in your FTP program called .htaccess

  4. Change the CHMOD for your .htaccess file to 666 (your preference on how you want to do this)

  5. Go back to your Permalinks page and edit the link structure you want. Problem should be solved!

  6. Make sure to change the chmod of the htaccess file back to 644 after you are done.

Just had the same problem and it seemed to fix it instantly! Good luck!

Solution 11 - Wordpress

Most of the time this issue is fixed by simply visiting the Settings -> Permalink page in the WordPress admin and click Save (as several other answers already pointed out). When this page is accessed, WordPress rewrites the directives in the .htaccess file which magically fixes the issue. The issue often happens after moving a site (the site breaks because the .htaccess gets left behind or the settings need to be updated).

If WordPress doesn't have the right permissions to write the .htaccess file, a notice will appear at the top of the page and further instructions at the bottom when the settings are saved. In this case you need to edit the .htaccess file yourself or, better, to fix the permissions on that file. The file is at the root of the WordPress installation. cd into the directory and sudo chmod 644 .htaccess. You might also want to check if the file belongs to the right group and change that is needed with chown. Ask your hosting provider if you don't know how to do that.

If you are on shared hosting that's probably all you can do. If you still have the issue you might want to talk to you hosting provider's support. Otherwise, make sure the use of .htaccess files is enabled on the server, as @georgeos already suggested. Note that httpd.conf is not always used (Ubuntu indicates it is deprecated but the official Apache docs still says it is often the main configuration file). /etc/httpd/conf/httpd.conf and /etc/apache2/apache2.conf seem to be the most common places for this file. Find the block for the public folder, usually <Directory /var/www/> and make sure that the AllowOverride directive is set to All. If it is set to None, your .htaccess file is simply ignored by the server.

Solution 12 - Wordpress

I installed mod_rewrite to fix the issue. Below link provides an installation guide:- http://www.iasptk.com/enable-apache-mod_rewrite-ubuntu-14-04-lts/

Solution 13 - Wordpress

You may have .htaccess disallowed in webhost settings. Setting to default permalinks would work in that case.

Solution 14 - Wordpress

Case 1:- Let us think if migrate site from one hosting to another hosting if see this kind of issue.

Solution:- Simply go to old server copy .htaccess file code, then past in new server .htaccess file. 99% it i will works.

Solution 15 - Wordpress

If your WordPress installation is in a subfolder (ex. https://www.example.com/subfolder) change this line in your WordPress .htaccess

RewriteRule . /index.php [L]

to

RewriteRule . /subfolder/index.php [L]

By doing so, you are telling the server to look for WordPress index.php in the WordPress folder (ex. https://www.example.com/subfolder) rather than in the public folder (ex. https://www.example.com).

Solution 16 - Wordpress

I have the same problem and so I remove the Apache and make it again and the problem was solved.

Solution 17 - Wordpress

Just Navigate to Settings->Permalink in your dashboard and then Save Changes button in the last.\

Solution 18 - Wordpress

I just changed the permalink to 'month and day'of all the posts by ging to setting>permalink.

Now all posts are open and working fine.

Again, I renamed to all posts to its actual permalink. Its again working fine.

This method worked for me :-)

Solution 19 - Wordpress

For nginx users

Use the following in your conf file for your site (usually /etc/nginx/sites-available/example.com)

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

This hands off all permalink requests to index.php with a URI string and supplied arguments. Do a systemctl reload nginx to see the changes and your non-homepage links should load.

Solution 20 - Wordpress

Before trying to do any permalink or server config changes, please check you .htaccess file. This mostly is a corrupt or blank .htaccess file issue. Reset the htaccess file to the default

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Solution 21 - Wordpress

after 2 long days, the solution was to add options +FollowSymLinks to the top of my .htaccess file.

Solution 22 - Wordpress

Go to your WordPress Dashboard, scroll down to settings, select Permalink,

in custom settings that appear, go to custom structure and replace the text in the text field with

/index.php/%year%/%monthnum%/%day%/%postname%/

and then save changes

Solution 23 - Wordpress

Wanted to share my two cents. Recently came accross that very same issue installing WordPress 5.9. Year 2021.

Configuration: > Platform MAC, Software XAMPP, WordPress 5.9

None of the previous answer did it for me.

The issue was due to the fact that files permissions accross the XAMPP folder were set to "Read only".

  1. Locate the XAMPP folder. (Usually in the Applications folder).
  2. Right click XAMPP folder.
  3. Get info.
  4. Bottom right unlock button → Follow instructions.
  5. Sharing and permissionsEveryoneRead & Write.
  6. Bottom left three dots button → Apply to enclosed items.

Solution 24 - Wordpress

I had this issue not so long ago. I had reset my permalink to default or just saved it, updated themes/core to (4.7.4)/plugins, deactivated all plugins, switched to default theme, optimized database, .htaccess is already default, checked file permissions, mod_rewrite is on.

So far nothing works, what works are the posts, new page, the /contact page EXCEPT for old pages.

Basically, the pages/URLs that aren't working are:

/breeding
/training
/training/*
/breeding/*

Ultimate, I found these files in the root folder:

/breeding.php and /training.php

I renamed both files and the pages above worked.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdamView Question on Stackoverflow
Solution 1 - WordpressRochester OliveiraView Answer on Stackoverflow
Solution 2 - WordpressgeorgeosView Answer on Stackoverflow
Solution 3 - Wordpressusama sulaimanView Answer on Stackoverflow
Solution 4 - WordpresstsvikasView Answer on Stackoverflow
Solution 5 - WordpressDavid ValenzaView Answer on Stackoverflow
Solution 6 - WordpressMahesh singh chouhanView Answer on Stackoverflow
Solution 7 - WordpressAsif KhanView Answer on Stackoverflow
Solution 8 - WordpressJosé CarlosView Answer on Stackoverflow
Solution 9 - WordpressBlackView Answer on Stackoverflow
Solution 10 - WordpressJEFF BView Answer on Stackoverflow
Solution 11 - WordpressmrtnmgsView Answer on Stackoverflow
Solution 12 - WordpressAbhishek KView Answer on Stackoverflow
Solution 13 - WordpressFankyView Answer on Stackoverflow
Solution 14 - WordpressNavrukView Answer on Stackoverflow
Solution 15 - WordpressGuido Walter PettinariView Answer on Stackoverflow
Solution 16 - WordpressboomzView Answer on Stackoverflow
Solution 17 - WordpressDeepak SharmaView Answer on Stackoverflow
Solution 18 - WordpressShani DeshwalView Answer on Stackoverflow
Solution 19 - WordpressABC TaylorView Answer on Stackoverflow
Solution 20 - WordpressMustafa sabirView Answer on Stackoverflow
Solution 21 - WordpressAhmad AliView Answer on Stackoverflow
Solution 22 - WordpressInsookwaView Answer on Stackoverflow
Solution 23 - WordpressamarinediaryView Answer on Stackoverflow
Solution 24 - WordpressLoreto Gabawa Jr.View Answer on Stackoverflow