Я надеюсь, что есть способ сделать это с помощью 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 в каталоге клиента или в корневом каталоге веб-сайта. Предпочтительным является веб-корень.