Permalinks are a critical aspect of a WordPress website’s structure, providing user-friendly URLs that enhance both SEO and user experience. However, occasionally, WordPress users encounter permalink issues that result in ugly or broken URLs. One common solution to this problem involves enabling URL rewriting. In this guide, we will walk you through the process of fixing permalink issues in WordPress by enabling URL rewriting through various methods. WordPress page not found.
Part 1: Enabling Rewrite with a2enmod
The a2enmod
command is a utility used to enable or disable Apache modules. By enabling the rewrite
module, you can enable URL rewriting for your WordPress website. Follow these steps to get started:
- Access Your Server: Log in to your server using SSH or another preferred method.
- Enable the
rewrite
Module: Run the following command to enable the rewrite module.
sudo a2enmod rewrite
This command activates the module, allowing Apache to rewrite URLs.
- Restart Apache: After enabling the module, you need to restart Apache for the changes to take effect.
sudo service apache2 restart
Now, your server is ready to process rewritten URLs.
Part 2: Enabling Rewrite in Apache Configuration File
The next step involves configuring Apache to handle URL rewriting for your WordPress website. This is done through the Apache configuration file. Here’s how to do it:
- Locate the Configuration File: The Apache configuration file is typically located in the
/etc/apache2/sites-available/
directory. Look for the.conf
file corresponding to your WordPress site. - Open the Configuration File: Use your preferred text editor to open the configuration file. You might need superuser privileges, so consider using
sudo
. - Add Rewrite Rules: Inside the
<VirtualHost>
section for your WordPress site, add the necessary rewrite rules to enable pretty permalinks. We will provide an empty code block where you can insert your rewrite rules.
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/yourdomain.com/public_html
# Other configuration directives
# Rewrite rules here
<Directory "/var/www/yourdomain.com">
Require all granted
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =yourdomain.com [OR]
RewriteCond %{SERVER_NAME} =www.yourdomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}[END,NE,R=permanent]
</VirtualHost>
You will need to reload Apache to enable the new config.
sudo service apache2 reload
Enabling Rewrite in .htaccess
File
WordPress uses the .htaccess
file to manage URL rewriting within its root directory. You can set up rewrite rules directly in this file. The rewrite rules might already be there, modified by WordPress. If not, follow these steps:
- Locate
.htaccess
File: Navigate to your WordPress site’s root directory using your preferred FTP client or file manager. Look for the.htaccess
file. - Backup Your
.htaccess
File: Before making any changes, it’s a good idea to create a backup of your existing.htaccess
file. - Edit the
.htaccess
File: Open the.htaccess
file using a text editor. - Insert Rewrite Rules: Within the file, you can place the rewrite rules to enable permalinks.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Save and Upload: After adding the rewrite rules, save the .htaccess
file and upload it back to your server.
WordPress documentation https://wordpress.org/documentation/
Check the other WordPress articles here: https://soltveit.org/category/software/wordpress/