7

How can I configure Apache to list files in a directory even if an index file is present?

For example, if I have a directory /var/foo that contains a number of files, and one of those is a directory index (index.html, index.php, etc.), how can I make Apache show the directory listing instead of displaying the contents of index.html, when a user browses to http://example.com/foo/?

# Directory listing for /var/foo/, mapped to http://example.com/foo/
..
.
code.c
readme.pdf
index.html

I have used the following but I would imagine there's a better way:

Options +Indexes +MultiViews
DirectoryIndex will-never-exist.xyz
Jake Petroules
  • 251
  • 2
  • 11

2 Answers2

6

You may leave DirectoryIndex option empty or just turn off dir_module module.

Selivanov Pavel
  • 2,126
  • 3
  • 23
  • 47
  • Leaving the option empty doesn't work for me with apache-2.2.14, `index.html` still gets used. – David Grellscheid May 23 '12 at 10:53
  • Check your config, it's assigned somewhere. Try to disable module – Selivanov Pavel May 23 '12 at 13:44
  • @Selivanov: got the same problem (tried both empty `DirectoryIndex ` and quoted empty string `DirectoryIndex ""`, defined at the root of my VHost). But when I specify a non-existent file (or disable the module), it works so it's not overriden somewhere else (AFAICT). –  Feb 06 '13 at 10:13
3

The DirectoryIndex directive can be limited in scope with a Directory block

<Directory /path/to/directory/to/list>
    Options +Indexes +MultiViews
    DirectoryIndex will-never-exist.xyz
</Directory>

This limits the scope to the particular directory rather than your vhost or server etc.

user9517
  • 114,104
  • 20
  • 206
  • 289