I am trying to deny access to the root directory while allowing access to certain files (ending in .html and .js) and specifying a DirectoryIndex so requests for the directory will respond with a default page.
Checked these things already:
-Apache/2.2.14 can read its directory root.
-The DocumentRoot file exists.
-There are no other directory settings which configure the same directory
Here's one of the more explicit configs I tried.
<VirtualHost *:80>
ServerName myserver.com
DocumentRoot /var/www/client
DirectoryIndex app.html
<Directory /var/www/client>
AllowOverride None
Options +Indexes
Order Allow,Deny
Deny from all
<Files ~ "\.(js|html)$">
Order Deny,Allow
Allow from all
</Files>
</Directory>
</VirtualHost>
Gives a 403. I tried a couple of permutations, trying to be as explicit with directives as I knew how. I tried allow from all
on the directory to prove there were no conflicting rules and the DirectoryIndex worked as expected (served app.html). With the above config I can get /app.html, just not have it served as the default for requests to "/".
This is what I ultimately did to get the desired effect.
<VirtualHost 127.0.0.0:80>
ServerName example.com
DocumentRoot /var/www/client
AliasMatch ^/$ /var/www/client/app.html
<Directory /var/www/client>
AllowOverride None
Order Allow,Deny
Deny from all
<Files ~ "\.(js|html)$">
Order Deny,Allow
Allow from all
</Files>
</Directory>
<VirtualHost>
Is there a better way to achieve my goal? Does DirectoryIndex not work with ?