Я надеюсь, что есть способ сделать это с помощью mod_rewrite и Apache, но, возможно, есть и другой способ.
На моем сайте я создал каталоги для обновленных версий сайта для клиентов. Если веб-корень /home/blah/www
, каталог клиента будет /home/blah/www/clients/abc
. Когда вы получаете доступ к каталогу клиента через веб-браузер, я хочу, чтобы он использовал любые запрошенные файлы в каталоге клиента, если они существуют. В противном случае я хочу, чтобы он использовал файл в корневом каталоге.
Например, допустим, клиенту не нужен собственный index.html
. Поэтому какой-то код определит, что в /home/blah/www/clients/abc
нет index.html
, и вместо этого будет использовать тот, что в /home/blah/www
. Имейте в виду, что я не хочу перенаправлять клиента в корневой каталог в любое время, я просто хочу использовать корневой веб-файл с таким именем, если в клиентском каталоге не указана его собственная копия. Веб-браузер по-прежнему должен указывать на /clients/abc
независимо от того, существует ли файл там или в корне. Аналогичным образом, если есть запрос на news.html
в клиентском каталоге и он действительно там существует, то просто отправьте этот файл вместо news.html
корневого веб-узла. Опыт пользователя должен быть бесшовным.
Мне нужно, чтобы это работало для запросов на любое имя файла. Если мне нужно, например, добавить новую строку в .htaccess
для каждого файла, который я, возможно, захочу перенаправить, это скорее сведет на нет цель, поскольку требуется слишком много обслуживания и велика вероятность ошибок, учитывая большое количество файлов.
В своих примерах укажите, находится ли ваш код в файле .htaccess в каталоге клиента или в корневом каталоге веб-сайта. Предпочтителен веб-корневой каталог.