By matbury
Getting the following 404 error message:
Not Found The requested URL was not found on this server. Apache/2.4.41 (Ubuntu) Server at matbury.com Port 443
So far on my VPS: Let’s encrypt certbot installed & HTTPS set at default (redirect) Apache mod_rewrite installed & enabled
Allow Apache to write WordPress’ .htaccess file:
$chown www-data:www-data /var/www/html/wordpress/.htaccess
$chmod 755 /var/www/html/wordpress/.htaccess
$sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
(I even tried changing the port number to 443)
$sudo nano /etc/apache2/apache2.conf
ServerName localhost
$sudo service apache2 restart
(Even tried rebooting the server)
$sudo nano /var/www/html/wordpress/wp-config.php
Added:
define( 'WP_SITEURL', 'https://matbury.com/wordpress' );
$sudo nano /var/www/html/wordpress/.htaccess
# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
I also have Moodle 3.9 running on the same server. No problems with that but it doesn’t use mod_rewrite.
Everything works fine with Plain links set in WordPress. When I switch to permalinks I get the 404 error. What am I missing or doing wrong?
Thanks in advance! :)
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Also - a little gotcha in your original post… you probably figured it out already, but this will help others…
Invalid XML tag
You had: <Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride all Require all granted </Directory>
Note the open tag for ‘Directory’ should not have the ending ‘/>’
It shoud just be
<Directory /var/www/html> … … </Directory>
So anyone copying this, replacing html with their own website name, will have the same issue if not caught.
Cheers
Hi there @matbury,
As your WordPress installation is stored at /var/www/html/wordpress you would need to add another AllowOverride rule for that folder as well:
<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
That way the .htaccess file in your /var/www/html/wordpress folder would take effect.
After that run an Apache config test and if you get Syntax OK restart it.
Let me know how it goes. Regards, Bobby
Thanks for responding bobbyiliev :)
Where should I add the additional AllowOverride rule? I’ve tried this:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
in /etc/apache2/sites-available/000-default.conf
I’ve also tried with a trailing slash on <Directory /var/www/html/wordpress/>
Syntax is OK but still getting the 404 error.
Please help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.