The content of any path that does not contain an Index File (within a deployment) is rendered using our Directory Listing.
Here is an example of how this could look like:
As you can see, the directory listing contains three items:
first.php
andsecond.php
are Serverless Functionsthird.png
is a Static File
However, no Index File is present. If one would be present, the path of the Directory Listing would render that file instead.
Index Files
Index Files are rendered in place of the path of the directory they are located in.
For example, visiting the path /about
will serve the index file located in the about
directory if it exists. This is typically /about/index.html
.
Files that match all of the following criteria will be identified as an index:
- The file name is either
index
orindex.<extension>
(where<extension>
is any file extension of your choice). - The file name does not end with a
.
or contain multiple.
in a row.
If multiple files match this pattern, index.html
will take precedence followed by shortest to longest file names. That means index.js
will take precedence over index.bundle.js
.
Types of List Items
There are two types of list items (which matches the Output of a Build):
- Static Files (indicated with a blank or picture icon)
- Serverless Functions (indicated with a λ icon)
Disabling the Directory Listing
The Directory Listing will only occur if there is no Index File at the path the client is trying to access.
By placing an Index File, set to look like a "Not Found" error page, inside the Directory Listing path, it will be indicated to visitors of your site that the location does not exist, rather than showing the Directory Listing.
Rewrite To a 404 Page
To hide Directory Listings using a 404 using advanced configuration, you can use the routes
property in a now.json
file at the root of your project:
{ "routes": [ { "src": "/example", "dest": "/404.html", "status": 404 } ] }
In the example above, the /example
route (which is a directory without an Index File, thus would render a Directory Listing) is rewritten to render the /404.html
file instead.
Furthermore, ZEIT Now sets a status code of 404
to accompany the response.