How to fix Nginx WordPress permalinks 404 error

Fixing Nginx WordPress permalinks 404 errors typically involves adjusting your Nginx server configuration and WordPress settings. Here’s a step-by-step guide to help you resolve this issue:

  1. Backup Your Website: Before making any changes, it’s essential to back up your WordPress website and Nginx configuration files to avoid data loss or server misconfiguration.
  2. Check Nginx Configuration:
    • Nginx Rewrite Rules: Make sure your Nginx configuration includes the necessary rewrite rules to handle WordPress permalinks. This should be located within the server block in your Nginx configuration file (often found at /etc/nginx/sites-available/default or a custom file you created).
      nginx
      location / {
      try_files $uri $uri/ /index.php?$args;
      }
    • Restart Nginx: After making changes to your Nginx configuration, restart the Nginx service to apply the new settings:
      bash
      sudo systemctl restart nginx
  3. WordPress Permalink Settings:
    • Log in to your WordPress dashboard.
    • Go to Settings > Permalinks.
    • Choose your desired permalink structure. Common options include “Post name” or “Day and name.”
    • Click the “Save Changes” button to update your permalink settings.
  4. .htaccess File (if using Apache previously): If you migrated from an Apache server to Nginx, your .htaccess rules might not work anymore. WordPress relies on .htaccess for URL rewriting on Apache, but Nginx uses a different configuration.You should remove or rename the .htaccess file in your WordPress directory to prevent conflicts with Nginx. WordPress will handle URL rewriting through Nginx configuration.
  5. WordPress Cache: If you use a caching plugin like W3 Total Cache or WP Super Cache, flush or clear the cache after making changes to your permalink settings.
  6. File and Directory Permissions:
    • Ensure that the WordPress files and directories have the correct permissions. WordPress recommends directories to have a permission of 755 and files to have a permission of 644.
    • Correct ownership and group settings are also crucial. Typically, the web server user (e.g., www-data for Nginx) should have ownership of the WordPress files and directories.
      sudo chown -R www-data:www-data /var/www/your-wordpress-directory
  7. Check for Plugin Conflicts: Sometimes, plugins can cause permalink issues. Temporarily deactivate all plugins and see if the 404 error disappears. If it does, reactivate plugins one by one to identify the problematic one.
  8. Check for Duplicate .htaccess Files: In some cases, there might be multiple .htaccess files in different directories, causing conflicts. Ensure there’s only one .htaccess file in your WordPress root directory.
  9. Server Cache: If you’re using server-level caching (e.g., FastCGI cache), clear the cache after making changes to your Nginx configuration.
  10. Test: After following these steps, test your website to ensure the 404 errors are resolved. Try accessing different permalinks to confirm that they work as expected.

By following these steps, you should be able to fix Nginx WordPress permalinks 404 errors and have your website’s permalinks functioning correctly.

Reference –

Leave a Reply