LINUX.ORG.RU

Подскажите по конфигу nginx

 ,


0

2

Дано

location /nod32 {
 root /var/www/
ls /var/www/nod32/
eset_upd nod_upd

Задача - чтоб в зависимости от юзерагента подсовывалось либо один каталог, лмбо другой.

 if ($http_user_agent ~ .*BPC.[345].*) {
 rewrite ^(.*)$ /eset_upd/$1 last;
 }
 if ($http_user_agent ~ .*BPC.2.*) {
 rewrite ^(.*)$ /nod_upd/$1 last;
 }
типа такого я кое-как накарябал, но оно работает совсем не так, как хочется, оно идёт судя по логам куда-то в /html/eset_upd//nod32/update.ver, а надо что б в /nod32/eset_upd напимер откуда берётся этот /html и как правильно задать путь?

★★★★

Ответ на: комментарий от m0use

пока сделал так

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;
                }

работает вроде, ну и соответственно локейшн нод32 больше не нужен, что по идее даже удобнее.

Не можешь ткнуть - объяснить что не так с рерайтом?

GreyDoom ★★★★
() автор топика
Ответ на: комментарий от xpahos

да, читал, что ифы не рекомендуются.

Хорошо, сделаю мэпом. Хотя рерайт всё же же хотелось бы разобрать. Или регексп, где уж я накосячил..

GreyDoom ★★★★
() автор топика
Ответ на: комментарий от GreyDoom

блин, map теперь не очень подходит - хочется, что бы аутентификация была.

Т.е. Что бы при определённом юзерагенте его не только выбрасывало в нужную директорию, но и чтобы аутентификацию спрашивало у него, но только у него. Т.е чтоб, например всяким операм при заходе на ресурс вопрос об аутентификации не задавался

GreyDoom ★★★★
() автор топика

Короче, если я щас всё правильно понимаю, то нужно было вместо

rewrite ^(.*)$ /nod_upd/$1 last;

писать что-то типа

rewrite ^/nod32/(.*)$ /nod32/nod_upd/$1 permanent;

Всем спасибо.

GreyDoom ★★★★
() автор топика
Ответ на: комментарий от GreyDoom

Короче, если я щас всё правильно понимаю, то нужно было вместо

rewrite ^(.*)$ /nod_upd/$1 last;

писать что-то типа

rewrite ^/nod32/(.*)$ /nod32/nod_upd/$1 permanent; 

Всем спасибо.

GreyDoom ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.