Dazu gleich mehr. Aus semantischer Sicht ist sie aber ziemlich daneben. Jemand, der das das erste Mal und ohne Erklärung sieht, sieht "ErrorDocument" und denkt sich vermutlich, dass das was mit Fehlerbehandlung zu tun hat.
Ja. Aber wenn der "Admin" oder "Webdesigner" weiß, was die Konditionen -f und -d machen, dann weiß er das erst recht. Trefflicher wäre womöglich "router.php" statt "index.php". Wenn der "Admin" oder "Webdesigner" DAS dann immer noch nicht sieht sollte er ein paar Kurse bei mir belegen und sich solange selbst suspendieren.
Vorteil meines Vorgehens ist wohl, dass die Funktion des Aufrufens eines Error-Dokuments wohl sogar etwas performanter sein wird, weil diese im Apache "fest verdrahtet" ist. Die Konditionen muss er erst lesen und verarbeiten.
Nun noch zu den Nebenwirkungen. Du hast vergessen, den Statuscode auf 200 zu ändern. Selbst wenn man das noch nachzieht,
Ein solcher "Router" muss sowieso den Statuscode setzen. Was, wenn er kein "Dokument" findet? Ganz geschickte Burschen werten sogar header-requests aus und schauen nach dem E-Tag und ob was passendes serverseitig gecacht oder verändert wurde - müssten also auch einen 304er senden können.
wie sieht es mit dem Error-Log aus? Bleibt das unberührt?
Bei meinem ist das so, also keine Einträge. Die stehen mit Status 404 im access.log. Ich habe die Original-Konfiguration (Apache 2.4, Debian 8) belassen.
Falsche Einträge behindern nur die Sicht auf die wirklichen Fehler.
So ist es. Zu viele auch.