Lighttpd Control a Directory Listing With mod_dirlisting

Lighttpd web server will generate a directory listing if a directory is requested and no index-file was found in that directory. mod_dirlisting is one of the modules that is loaded by default and doesn’t have to be specified on server.modules to work.

ADVERTISEMENTS

Task: Enable Directory Listings Globally

Open lighttpd configuration file:
# vi /etc/lighttpd/lighttpd.conf
Append / modify
server.dir-listing = "enable"
OR
dir-listing.activate = "enable"
Save and close the file. Restart lighttpd:
# /etc/init.d/lighttpd restart
To disable directory listing, use:
dir-listing.activate = "disable"

Enable directory listing only for a directory

You can also enable or disable listing on selected url / directory combination. For example, display directory listing only for /files/:
$HTTP["url"] =~ "^/files($|/)" { server.dir-listing = "enable" }
OR
$HTTP["url"] =~ "^/files($|/)" { dir-listing.activate = "enable" }

Further readings:

🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallCentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
3 comments… add one
  • yermet Mar 13, 2008 @ 18:59

    Hello.

    Another way to avoid the directory listing is creating an index.html with no content in the directory that you don’t want to be listed. Nothing will happen when that url is opened and it is a quite fast method I think.

    Maybe this way can be easily “hacked”… I don’t really know.

    Bye!!

  • Bradford Apr 19, 2009 @ 7:20

    I didn’t like the idea of all my wordpress directories free for browsing, so I tried the global disable. It didn’t work, but it does work when I specify it in each of the websites I’ve defined in my lighttpd.conf file.

    $HTTP[“url”] == “website” { dir-listing.activate = “disable” }

  • politics Feb 10, 2010 @ 6:36

    the lighttp server is very strongly works. Very nice topic choose your article.

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.