Skip to main content

MultiViews

oder „Warum liefert Apache etwas aus, dass es gar nicht gibt?“

MultiViews gehören zu mod_negotiation und ermöglichen dem Apache Dateinamen zu „erraten“.

Bekommt der Apache bei aktivierten MultiViews einen Request auf eine Datei, die es gar nicht gibt, z.B. /var/www/bla, aber es gibt eine Datei namens /var/www/bla.png, dann wird diese .png Datei ausgeliefert (die URL ändert sich trotzdem nicht). Apache sucht nach bla.* und liefert den besten Treffer (mit allen dazugehörigen Media-Typen, content encodings und Headern) aus.

Leider hat das auch negative Folgen. Wenn es z.B. einen Rewrite auf /bla gibt, funktioniert dieser nicht! Also lieber alles sauber verlinken oder programmieren und auf MultiViews verzichten, als sich hinterher über dieses Verhalten zu ärgern.

MultiViews sind standardmäßig aktiviert (/etc/apache2/sites-enabled/default), zum Deaktivieren einfach den Eintrag entfernen oder explizit ein - vorne ran setzen:

...
<Directory /var/www>
Options Indexes FollowSymLinks -MultiViews
...