Het zorgen dat een open dir wordt weergegeven verschilt van server tot server. Ik ga hieronder uit van Apache HTTPD, de meest gebruikte webserver (60-70% ).
1. De netste manier is om in de desbetreffende directory dit op te lossen met een
.htaccess bestand. Deze bestanden worden door de webserver gelezen als een directory benaderd wordt om te kijken of de configuratie voor de desbetreffende directory anders is. Dit is dus bij uitstek geschikt om te voorkomen dat Indexing aanstaat. Als Indexing standaard aanstaat, kan je deze 'uitzetten' door een
.htaccess bestand in de desbetreffende directory te plaatsen met de volgende inhoud:
Options -Indexes
Er zijn echter een paar dingen waar je op moet letten:
- De aanpassingen in configuratie werken ook meteen door in de onderliggende directories.
- Het kan mogelijk zijn dat deze configuratie niet door middel van een .htaccess file aangepast mag worden. Dit ligt aan de instellingen in
httpd.conf, welke alleen door de beheerder van het systeem aangepast kan worden. Krijg je een foutmelding met HTTP error code 500 (aka
Internal Server Error) na het plaatsen van je .htaccess bestand, dan is er een redelijk grote kans dat je zelf de configuratie van
Options niet mag wijzigen.
2. Je kan dit heel eenvoudig verhelpen door gewoon een
index.html (afhankelijk van configuratie, op veel servers zal index.html echter werken, probeer anders ook index.htm of voor IIS default.htm) bestand in de directory te zetten. De server zal namelijk alleen een directory listing geven als geen standaardpagina (als index.html) gevonden wordt in de directory.
3. Wil je slechts een paar dingen verbergen maar wel je Indexing behouden, laat die paar dingen dan qua naam met een punt beginnen. Als ik bijv een plaatje de naam
.plaatje.jpg geef (let op de punt in het begin), dan zal die niet in de directory listing weergegeven worden. Ik kan het plaatje dan alleen vinden als ik het hele pad (bijv.
http://www.domein.tld/directory/.plaatje.jpg ingeef). Dit is dus ideaal om dingen te verbergen, maar toch je directory indexing te behouden. Deze 'truc' werkt ook voor directories.
4. Als je punt 3 hierboven wat uit wil breiden, kan je ook best zelf een Directory Listing script in PHP schrijven. Dan kan je zelf regels geven over wat wel en niet weergegeven mag worden. Mocht iemand hele simpele voorbeeldcode hiervan willen, laat het me maar weten.