Question

.htaccess not removing file extensions

Posted February 5, 2018 1.8k views
UbuntuApache

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?

edited by kamaln7

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
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

Submit an Answer