171

I just installed the LAMP stack on my Ubuntu system.

The redirection is not working for me. I don't know how to fix it. Can anyone help me?

Kevin Bowen
  • 19,615
  • 55
  • 79
  • 83
vinoth
  • 1,811
  • 3
    IMHO this question is not Ubuntu specific and should be migrated to Server Fault. – Paolo Jun 12 '11 at 14:35
  • 2
    The OP installed Lamp on UBUNTU. How much more Ubuntu specific do you want? – wojox Jun 12 '11 at 15:36
  • 1
    @wojov: I don't know about this case, but that argument doesn't work. "How can I use this application (on Ubuntu)?" are mostly off-topic. –  Jun 12 '11 at 17:14
  • 23
    This is not a "How can I use application", but a "how to enable a specific feature in Ubuntu". Apache under Ubuntu uses a different configuration layout in which each module and virtual host is a file in /etc/apache2 and which can be enabled using a2* programs. – Lekensteyn Jun 12 '11 at 18:58
  • You should describe what you have done to narrow down the problem, it – ericn Jul 06 '15 at 15:40

2 Answers2

247

To enable it the rewrite module, run "apache2 enable module rewrite":

sudo a2enmod rewrite

You need to restart the webserver to apply the changes:

sudo service apache2 restart

If you plan on using mod_rewrite in .htaccess files, you also need to enable the use of .htaccess files by changing AllowOverride None to AllowOverride FileInfo. For the default website, edit /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

After such a change, you need to restart Apache again.

Lekensteyn
  • 174,277
51

I dare to add a special answer (as a followup to the great answer above) regarding ubuntu 14.04 and .htaccess :

In 14.04, the name of the default configuration file is changed to 000-default.conf :

sudo gedit /etc/apache2/sites-available/000-default.conf

add the following to the end of the file :

<Directory "/var/www/html">
    AllowOverride All
</Directory>

For some reason, in Ubuntu 14.04 and apache2 the root is set to /www/html. If you want to change the webserver root back to good old /www, open 000-default.conf and change

DocumentRoot /var/www/html/

to

DocumentRoot /var/www/

and then off course it should be

<Directory "/var/www">
    AllowOverride All
</Directory>
davidkonrad
  • 731
  • 9
  • 15
  • 1
    Thanx for info! This/new way we can use www as folder where we put all websites, and html is by default "website" for localhost. May be important if you are playing with opening ports to world - that this way your localhost cannot see folders of other projects. – Vladimir Vukanac Nov 27 '15 at 17:34
  • 1
    It is not working for me. I am using Ubuntu 14.04.4 LTS – Suhail Gupta Aug 22 '16 at 11:20