Seit einiger Zeit schon verlinke ich statt der index-Dateien stets das Verzeichnis, also z.B. nicht mit dem href-Attribut "ordner-1/index.html", sondern mit "ordner-1/". Der Grund ist zum einen, dass ich die kürzeren, auf einen Slash endenden Adressen für benutzerfreundlicher halte, zum anderen vermeide ich bei Google eine Streuung von Pagerank bzw. Linkpopularität auf mehrere Dateien: die Suchmaschine identifiziert die Angabe des Verzeichnis zwar mit einer Datei index.htm(l), aber nicht mit index.php, index.cgi u.ä. http://test.joergkrusesweb.de/ und http://test.joergkrusesweb.de/index.php repräsentieren für Google also zwei verschiedene Seiten.
Google-Konkurrent Yahoo dagegen scheint eine Adressierung "ordner/" als "ordner" zu interpretieren, womit unsinnigerweise aus einem Verzeichnis eine Datei (ohne Dateiendung) wird. Dies ist nicht ganz so tragisch, wenn der Webserver bei einem Aufruf automatisch von nicht vorhandenen Dateien dauerhaft (d.h. mit Status Code 301) auf gleichnamige Verzeichnisse weiterleitet. Schade, wenn Yahoo nicht aus dem Redirect 301 lernt, und beim nächsten Crawl wieder nach der Datei ein Verzeichnis tiefer nachfragt; aber immerhin wird im Endeffekt der richtige Inhalt indiziert.
Zum Problem wird dieses Verhalten der Suchmaschine allerdings, wenn man über mod_rewrite nach außen ein Verzeichnis simuliert, welches auf dem Server gar nicht existiert (z.B. um die URL eines vorher existierenden Verzeichnisses fortzuführen):
RewriteEngine On
RewriteBase /
RewriteRule ^ordner-([0-9]+)/$ ordner.php?nr=$1
Bei einer Anfrage von "ordner-1" findet der Server nichts entsprechendes, und sendet einen Status Code 404 "Not Found". In dem Fall muss man extra für Yahoo Slurp zusätzlich noch eine 301 Weiterleitung in die .htaccess einbauen:
RewriteRule ^ordner-([0-9]+)$ http://test.joergkrusesweb.de/ordner-1/ [R=301,L]
So wird der Bot doch noch auf die richtige Datei gelenkt. Und vielleicht lernt er irgendwann auch noch den Unterschied zwischen einer Datei und einem Verzeichnis.