Пишу сайт (CMS) с субдоменами и поэтому есть файлы, которые есть в корне, а есть файлы для конкретного домена. Хочу сделать, что если файл найден не был, то искать в директории домена. Например файл может быть размещен как в корне, так и по пути "/domains/cms.site.com/", таким образом, обратившись к
cms.site.com/test.png должен быть поиск в корне и если там файл не найден, то попытаться его найти по пути "/domains/cms.site.com/test.png". Использую Apache 2.4 + Nginx 1.9. В настройке Nginx я не силен, однако это одно из условий заказчика. Немного кода:
В htaсcess данная инструкция выглядет так (но работает только при отключении обработки статики nginx'ом, чего делать не хотелось бы):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/domains/.*
RewriteRule ^(.*)$ /domains/%{HTTP_HOST}/$1 [L]
Мои попытки настроить Nginx (вычитал в интернете, не работает, вместо файла отдает 403):
location / {
root "%hostdir%";
try_files $uri $uri/ /domains/$http_host/$uri =403;
}
location /domains {
root %hostdir%/domains/;
}
За любые подсказки буду очень благодарен!
Нашел решение:
location ~* ^.+\.(?!php$|cgi$|html$|htm$|phtml$)\w*$ {
root "%hostdir%";
try_files $uri /domains/$http_host/$uri =404;
expires 7d;
}