I have the following in my .htaccess file. Redirecting the www. works perfectly, as does the custom 404 message. The removal of .php from the file extension fails to work. domain.com/file returns the 404 message, with domain.com/file.php working fine.
RewriteEngine On
RewriteBase /
#
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
#
ErrorDocument 404 /404.php
Also if it helps this is in my 000-default.conf filed
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
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!
Turns out it was multiviews that was causing the problem. After I checked the error logs and searched on the error message I was receiving I found the following article.
Here is what you would need to add your htaccess file
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Make sure you have allowed such changes in your Apache configuration:
<Directory /var/www>
Options Indexes FollowSymLinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
If you are in another folder, change /var/www to whaterver your folder path is.
The above changes should be in your domain’s Apache config as mentioned. /etc/apache2/sites-available/yourDomain.conf
When you make any changes to an apache2 conf file, you have to restart apache2. Also make sure mod_rewrite is available.
sudo a2enmod rewrite && sudo service apache2 restart
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.