Apache umleiten 404 für nur die Dateien, die nicht gefunden werden?
-
11-07-2019 - |
Frage
Was ich suche zu tun ist im Grunde alle Anfragen nehmen in ein Verzeichnis, und wenn die Datei vorhanden ist, schicken Sie es. Falls nicht, senden sie vom übergeordneten Verzeichnis (annehmen, dass es existiert). Die Dateien sind groß und es kann eine Menge sein, und die Unterverzeichnisse werden häufig ändern, so dass Dateisystem-Links sind nicht eine gute Möglichkeit, zu verwalten. Gibt es eine Apache-Konfigurations Art und Weise, dies zu tun? z.
/path/file0
/path/file1
/path/sub1/fileA
/path/sub1/fileB
/path/sub1/fileC
/path/sub2/fileA
/path/sub2/fileB
/path/sub2/fileC
Also, wenn eine Anfrage /path/sub1/fileB
in für kommt sie bekommen /path/sub1/fileB
(Normalfall). Wird ein Antrag auf /path/sub1/file0
kommt bekommen sie /path/file0
(Sonderfall).
Oder vielleicht ist es eine Möglichkeit, in PHP, wenn ich könnte Apache alle Anfragen in einem Ordner auf eine bestimmte PHP-Datei umleiten, dass die Datei überprüft, ob vorhanden ist und wenn nicht überprüft ‚oben‘ ein Ordner?
Danke.
Lösung
könnten Sie mod_rewrite , das zu tun:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^path/[^/]+/([^/]+)$ path/$1 [L]
Diese Regel eine Anfrage von /path/
Schreiben von foo
/
bar
/path/
bar
nur, wenn /path/
foo
/
bar
ist keine reguläre Datei.
Andere Tipps
Ja, PHP kann Umleitung zu einem übergeordneten Verzeichnis.