When I was setting WordPress up in order to make this blog work, I was changing the Settings>Permalinks section to make the post url look pretty. So I changed the “Common Settings” to “Day and Name” and saved.
When you do that WordPress writes the .htaccess file on the /var/www directory.
Ok, enough introductory small talk! What happens is that the above feature requires that the mod_rewrite (or simply rewrite) module is installed and enabled. Fortunately, it comes pre-installed on Ubuntu 12.04.1, and you just need to issue the
$ sudo a2enmod rewrite
command and that should work, right?
Well, not really… Even though the issued command creates the symlink for the rewrite.load file at /etc/apache2/mods-enabled, you still have to manually edit your /etc/apache2/sites-enabled/000-default file and change the AllowOverride directive from None to All at the /var/www Directory section.
So the section that looks like:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None # change this line Order allow,deny allow from all </Directory>
Should look like:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All # now it will read .htaccess Order allow,deny allow from all </Directory>
Restart apache and everything should work. By changing the AllowOverride directive to All you’re telling Apache to read and load the configuration found at the .htaccess file on that Directory. If it is set to None, the .htaccess file is ignored.
More info at: