RewriteRule in .htaccess not working

.htaccess, apache, mod-rewrite

Solution

For the benefit of others, I figured out the answer:

In the file "/etc/apache2/sites-enabled/000-default" there was the line:

AllowOverride None

Change this to:

AllowOverride All

Problem

I am currently running Apache2 on my local machine, installed with the latest version of Ubuntu. I am trying to get basic URL rewriting working by using the .htaccess file. The file "http://localhost/page.php?=home" does exist, and the location "/doesnotexist/home" does not. I would like to have the first page be loaded when the second is requested. My .htaccess file looks like this: ``` RewriteEngine On RewriteRule ^/doesnotexist/(.*)$ /page.php?p=$1 ``` My httpd.conf file looks like this: ``` LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so <Directory /var/www> AllowOverride All </Directory> ``` Note that my httpd.conf file looks exactly like that, as it was empty before I edited it. The result that I get is this: ``` Not Found The requested URL /doesnotexist/home was not found on this server. ``` I have googled the ever living **** out of this problem, and I have never gotten anything other than the error above. If anyone has any ideas, I would be very appreciative.

Original source