Some sites and pages are accesible through two or more similar hostnames or URIs. In general, this is bad because the server is the only machine aware that both addresses yield the same thing. Humans, of course, realise this quickly, but can't be entirely certain just by examining the content obtained through both addresses. And then this uncertainty means that indexing robots (and other URI-managing software) cannot afford to make such assumptions at all. The result is that two distinct entries appear in the index, or in your bookmarks, or…
For example, content for a URI ending in a slash / is often taken from a file which is also available by appending index.html or default.htm.
A more coarse example is when a site has two slightly different domain names, e.g. www.example.com and example.com. Now every page is duplicated. If you want to link to it, which do you choose?
The most robust solution is probably to configure your server to
only serve through one URI per resource (notwithstanding content
negotiation). If you want to have multiple addresses for
convenience (say, publishing a short address in a TV advert),
define one address as canonical, then make the others generate a
301 Moved Permanently to point to the
canonical one. This tells both machines and humans that the link
they are using to refer to your page is incorrect, and should be
fixed. If it's not strictly incorrect, and you intend it to remain
a valid shortcut indefinitely, it's reasonable to use a
302 Found.
The other aspect to solving this problem is simply not to publish any non-canonical URIs, and is particularly applicable when dealing with index.html or default.htm. You could reasonably choose to always link to the names explicitly, avoiding the server's facility to locate them itself, or you could simple turn off that facility.
Hypertext Transfer Protocol -- HTTP/1.1 — Details of HTTP response codes
Apache Module mod_dir/
Apache モジュール mod_dir/
아파치 모듄 mod_dir — Configuring your server's
handling of directories