I'm working on Ubuntu 14.04.2 Apache 2.4.7
I have a Virtual host set up to serve files from /var/www/dev and the config file looks like this for dev.conf:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/dev
ServerName dev.site.com
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/dev/>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
I have a number of files in the /var/www/dev directory that I don't want indexed hence the -Indexes option
However I have a wordpress installation here too and I want those files to be served into a browser properly. The index file is index.php and is located in /var/www/dev/
I also have an .htaccess file in this same document root that looks like this:
DirectoryIndex index.php index.html
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RedirectMatch 301 ^/terms-and-conditions\.php$ /terms-of-use
RedirectMatch 301 ^/privacy\.php$ /privacy-policy
</IfModule>
The DirectoryIndex should tell the browser to use the index.php file, but I am getting a 403 Forbidden error.
I've tried:
- Opening up permissions, recursively changing ownership of
/var/www/devtowww-data:www-data - Adding
DirectoryIndex index.phpto thedev.conffile within the<Directory /var/www/dev/>tag - above and below the Options item - Checking
mod_diris active (it is) - Changing the indexes option back to
+Indexes- when I load my site it displays the physical file index - refreshing browser when I'm given the 403 or directory index will load my page correctly
- Clearing the browser cache every time I test in the browser
- Looked in my
apache2.conffile and can confirm there is no other reference toDirectoryIndex - Removing all references to DirectoryIndex and changing option to +Indexes - this makes everything work OK except users can see the directory index for all folders including the ones I don't want them to access
Any help is much appreciated!
EDIT: Using chrome and firefox dev tools - if I click the option for Disable Cache (when dev tools are open) - the site loads fine - perhaps this is a clue
EDIT 2: error.log outputs this line-
AH01276: Cannot serve directory /var/www/dev/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
access.log just shows my browser details -
"GET / HTTP/1.1" 200 1462 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0"