Are the Apache configuration files you are reviewing the same files being used by Apache?
Run apache2ctl -V
and confirm that the SERVER_CONFIG_FILE
entry matches your expectations and references the VirtualHosts declarations you are looking at. (Not a typical problem with a fresh install but a possibility if you've inherited someone else's configuration)
Is there an AccessFileName directive which specifies anything other than .htaccess
?
If so, try renaming your .htaccess
files accordingly or commenting out the directive (if you can confirm that no existing override files rely upon it).
Is there an AllowOverride directive limiting which directives are allowed?
It sounds as though you have already looked for and resolved issues with this directive, however, you will also need to restart Apache to apply any changes to the AccessFilename or AllowOverride directives.
Are the directives in your override file supported by installed modules?
This can be particularly easy to miss if your override directives are wrapped in IfModule
conditionals.
The easiest way to test is to add a core directive before any other override directives to the override file - for example, at the beginning of your .htaccess
file add:
Order allow,deny
deny from all
If your override file is parsed by Apache this should cause Apache to deny all requests against the directory - if your testing confirms that the override file is being parsed but the other directives are being ignored, check the installed modules and enable any modules you will need - e.g. a2enmod rewrite
(which is probably the module your WordPress installation is attempting to use, not enabled by default with some recent releases on Ubuntu)