>> надо что б в /nod32/eset_upd напимер откуда берётся этот /html и
>> как правильно задать путь?
> Видимо, есть отдельный location для eset_upd или определена ранее директива root, которая
> и сказывается на location ~ /eset_upd.нет, никаких директив больше нет
> Зачем два if?
Потому что несколько условий будет, этими 2мя не ограничится.
> Лучше приведите конфиг целиком.
Он уже весь тут, без указаний опций авторизации итп, т.е всего несколько строк
>[оверквотинг удален]
> server {
> listen 80;
> server_name <domain.name>;
> location /nod32 {
> root /var/www/nod32/nod_upd/;
> if ($http_user_agent ~ "BPC\.[345]") {
> root /var/www/nod32/eset_upd;
> }
> }
> }
т.е без использования рерайта? Очень интересно, спасибо. Пока сделал без location /nod32, т.е клиент обращаться напрямую будет к сайту, а nginx, видя его юзерагент, напрявлять куда надо:
location / {
root /var/www/;
## тут опции авторизации и кастомные логи
if ($http_user_agent ~ .*BPC.[345].*) {
rewrite ^(.*) /nod32/eset_upd/$1 break;
}
if ($http_user_agent ~ .*BPC.2.*) {
rewrite ^(.*) /nod32/nod_upd/$1 break;
}
Имхо, даже удобнее и красивее для пользователя.
Так работает. Ведь когда (если) я укажу index.html, это не помешает?
Всё же очень хочется разобраться с рерайтом, отчего клмент стучится во всякие /var/www/nod32/eset_upd//nod32/
Надо разобраться с регекспами, видимо. Как я понял, в конфиге nginx используются перловые регеспы? Не порекомендуете пособие for dummies?