wordpress permalinks not working - htaccess seems ok but getting 404 error on pages wordpress permalinks not working - htaccess seems ok but getting 404 error on pages wordpress wordpress

wordpress permalinks not working - htaccess seems ok but getting 404 error on pages


For other people landing on this page - Another issue could be (If you are using Apache as your web server) is your httpd.conf or your sites-available/sitename.conf file needs editing.

Your web directory will need to allow the .htaccess file to override it's settings.

look for your web dir in the file - it will be in the bulk of the conf file or segregated into a VirtualHost section.

<Directory /path/to/site>     #add the following setting to allow .htaccess in your web dir to work     AllowOverride FileInfo     #other settings ---</Directory>

This will allow you to set up WordPress URLs however you want, within WordPress.

***Edited - Thank You nietonfir For update. Use the least amount of privilege at first. If this doesn't work then replace AllowOverride FileInfo with AllowOverride All


There can be multiple things preventing the rewrite rule from working. My ubuntu server needed 3 things changed to get permalinks working.

In newer versions of apache2, you need to enable the module:

sudo a2enmod rewritesudo service apache2 restart

You may also need to modify the apache2.conf file.

sudo nano /etc/apache2/apache2.conf

Change your web directory override rule to AllowOverride All.

<Directory /var/www/>    Options Indexes FollowSymLinks    AllowOverride All    Require all granted</Directory>

After that, restart the service again.

The .htaccess file in the WordPress install directory needs to be owned or readable/modifiable by the webserver.

This can be accomplished by changing owner to www-data (usually the webserver user), or changing permissions.

sudo chown www-data /var/www/wordpress-install/.htaccess 

OR

sudo chmod 664 /var/www/wordpress-install/.htaccess

Login to your Wordpress admin backend and save the permalink settings, and they should hopefully be working.


This is now solved. I hadn't enabled mod_rewrite. So I did this:

$ sudo a2enmod rewriteEnabling module rewrite.To activate the new configuration, you need to run:  service apache2 restart$ service apache2 restart * Restarting web server apache2