Перенаправление Apache 404 только для файлов, которые не найдены?

StackOverflow https://stackoverflow.com/questions/1223012

Вопрос

То, что я хочу сделать, это в основном отправлять все запросы в каталог, и если файл существует, отправить его.Если нет, отправьте его из родительского каталога (предположим, что он там существует).Файлы большие, и их может быть много, а подкаталоги будут часто меняться, поэтому ссылки на файловую систему - не лучший способ управления.Есть ли какой-нибудь способ настройки Apache для этого?например ,

/path/file0
/path/file1
/path/sub1/fileA
/path/sub1/fileB
/path/sub1/fileC
/path/sub2/fileA
/path/sub2/fileB
/path/sub2/fileC

Итак, если поступает запрос на /path/sub1/fileB они получают /path/sub1/fileB (обычный случай).Если поступает запрос на /path/sub1/file0 они получают /path/file0 (особый случай).

Или, может быть, есть способ в PHP, если бы я мог заставить Apache перенаправлять все запросы в одной папке на определенный php-файл, который проверяет, присутствует ли файл, и если нет, проверяет 'up' папку?

Спасибо.

Это было полезно?

Решение

Вы могли бы использовать mod_rewrite мод_реврейтинг чтобы сделать это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^path/[^/]+/([^/]+)$ path/$1 [L]

Это правило перепишет запрос /path/foo/bar Для /path/bar только если /path/foo/bar это не обычный файл.

Другие советы

Да, PHP может перенаправление в родительский каталог.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top