@Dimon-zmey

Apache + Nginx, как организовать поиск файла в другой директории?

Пишу сайт (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;
}
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы