How do I enable apache file and directory indexing under Linux or UNIX?

Posted on in Categories , , , , , , , last updated April 15, 2007

Q. I’m using Apache 2 under Linux. How do I enable apache file and directory indexing? Currently it is disabled and I would like to enable the same for /pdfs/ directory (http://domain.com/pdfs).

A. Under Apache web server automatic index generation is enabled with using Options +Indexes or Options Indexes directive.

If a URL which maps to a directory is requested, and there is no DirectoryIndex (e.g., index.html) in that directory, then mod_autoindex will return a formatted listing of the directory.

Option # 1: Using Apache config file

Add directory option to Apache configuration file /etc/httpd/httpd.conf or /etc/apache2/apache2.conf:
# vi /etc/apache2/apache2.conf
Add following code:
<Directory /var/www/domain.com/pdfs>
Options Indexes FollowSymLinks
</Directory>

Save and close the file. Restart Apache:
# /etc/init.d/httpd restart
OR
# /etc/init.d/apache2 restart

Option #2: Using .htaccess Files with Apache

You can place config line Options Indexes in .htaccess file. Make sure .htaccess file support is enabled.
Change directory to pdfs
$ cd pdfs
Open .htaccess file
$ vi .htaccess
Append following apache directive:
Options Indexes
Save and close the file.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

7 comment

  1. Thanks for this article and your website in general. Your site has been my go-to resource for linux commands. I like the way you structure your articles so that they appear cookbook-style where you describe a scenario and provide the solution concisely. There is no need to read through long articles for a particular command like what other sites do. Keep up the good work!

  2. if u got PERMISSION DENIED, it’s probably because of SElinux, u can do this
    setenforce 1, so it will change SElinux status in Permissive
    [ NOTE : I suggest this comand just to be sure that the problem with is SELinux ]
    see more for info man SELinux httpd … u can find something maybe :)

Leave a Comment