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