.htaccess not removing file extensions

February 5, 2018 289 views
Apache Ubuntu

So here is the link in question:
http://cybergamegear.com/cards-for-crypto.html

The setup of my .htaccess file is as follows:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
ErrorDocument 404 /404.html

So it should be removing the .html part, but when you navigate to the link, it errors:
http://cybergamegear.com/cards-for-crypto

Any thoughts or suggestions?

1 Answer

The rules look fine to me, so I'm suspecting that Apache isn't reading the .htaccess file in the first place. That could happen if it is not configured to do so. Open your VirtualHost config (usually /etc/apache2/sites-enabled/file) and make sure AllowOverride is set to All like so:

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

Restart Apache so that the changes take effect.

  • I've edited that conf file to read:

    <VirtualHost *:80>
    ServerAdmin jonathandelcontedesigns@gmail.com
    ServerName cybergamegear.com
    ServerAlias www.cybergamegear.com
    DocumentRoot /var/www/cybergamegear.com/publichtml
    ErrorLog ${APACHE
    LOGDIR}/error.log
    CustomLog ${APACHE
    LOG_DIR}/access.log combined
    </VirtualHost>
    <Directory /var/www/html>
    Options FollowSymLinks
    AllowOverride all
    Require all granted
    </Directory>

    and restarted apache2, but still nothing. :c

    • Almost there! You just need to update the Directory block to match your DocumentRoot:

       <Directory /var/www/cybergamegear.com/public_html>
      

      That should hopefully get the .htaccess file to work

Have another answer? Share your knowledge.