.htaccess file not working on Ubuntu 14.04 with apache2


Solution 1

From your information I can only guess ("doesn't work" isn't very specific).
Most probably you did not enable mod_rewrite. Type in:

a2enmod rewrite

and restart Apache after:

service apache2 restart

Solution 2

First Step Open file as

sudo vim /etc/apache2/apache2.conf

Second Step remove comment sign (#) if you find it before this line ( line number 187 approx.) AccessFileName .htaccess

Third Step Then find the line where there is Options Indexes FollowSymLinks AllowOverride None Require all granted

replace "None" with "All"

AllowOverride All

.htaccess it's works!!

Solution 3

If its Ubuntu LAMP fresh installation, you can followup with these steps. It just the sum-up from the above points:

Step 1:

If you have sudo access for your Ubuntu server open the apache2.conf file

[email protected]/apache2$ vi apache2.conf

Step 2:

Change Directory /var/www/ from AllowOverride None to AllowOverride All

share the file permission level for .htaccess from denied to granted

Step 3:

Change the same settings in [email protected]/apache2/sites-enabled/$ vi 000-default.conf file

Step 4:

Run a2enmod rewrite

This step is really important. It prompts you to restart the server.

Step 5: Restart the server

service apache2 restart  

if the above step fails run

 sudo /etc/init.d/apache2 restart

Solution 4

If you using latest version on apache2 , you need to add the following lines in /etc/apache2/sites-available/000-default.conf

You need to add following inside this tag

Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all

after that run "service apache2 restart"

Author by


Updated on June 28, 2022


  • Admin
    Admin 7 months

    My .htaccess file doesn't work on my Ubuntu 14.04 with Apache 2.
    This is my file:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?pg=$1

    How do i solve my problem?

    • Muhammad Shahzad
      Muhammad Shahzad almost 7 years
      This may help someone else Link
  • Hamman Samuel
    Hamman Samuel about 5 years
    This is the best answer because it's the most comprehensive. I tried just editing the AllowOverride None but what was additionally needed was editing the .htaccess permission to granted