if (!-e $request_filename) { rewrite ^(.*)$ /index.php break; } мне не совсем понятно в каком контексте данный фрагмент. если в location, то можно попробовать, наверное вынести location = /auth_url { add_header Set-Cookie "lcid=1033;Domain=.domain.com; Path=/;Max-Age=31536000"; rewrite ^(.*)$ domain.com persistent; } выше, а если нет, то директивы if перенести внутрь location / {, а location = /auth_url оставить в контексте server
14 мая 2013 г., 2:55 пользователь <psixo...@gmail.com> написал: > Здравствуйте, Васильев. > > Вы писали 8 мая 2013 г., 16:36:48: > > > Ну, если принципиально (а автор писал, что его смущает лишь > кроссдоменность), до для авторизации можно сделать > > отдельный server{} на IP (без домена) или даже лучше порту. Допустим, > получим следующую схему: > > - Заходим на 1.2.3.4:1025/domain > > - Ставим куку > > - Редиректим на domain. > > > Один из вариантов. > > Не получится. Не примет браузер куку на левый домен. Даже если повесить > отдельный сервер на ip (без домена). только что > проверил: > > server { > listen [ip]:123; > > root /home/mob/; > index index.html; > > location = / { > add_header Set-Cookie "edws=1033; expires=Wed, 21-Aug-2014 16:49:59 > GMT; path=/; domain=.domain.tld"; > rewrite ^(.*)$ http://domain.tld permanent; > } > } > > server { > > ... > > if ($cookie_edws != '1033'){ > return 444; > } > > ... > } > > > 08.05.2013, 13:27, "Danila Shtan" <dan...@shtan.ru>: > > >> Проблема с auth_basic не в том, как её наследовать, а в том, что на > domain.com, site.domain.com, trash.domain.com пользователю придется > вводить пароли отдельно. > >> > >> Д. > >> > >> 2013/5/8 Васильев "Zmey!" Олег <zmey1...@ya.ru> > >>> Занесите auth_basic в контекст http {}, все server{} внутри > унаследуют его (только что проверил). > >>> > >>> 05.05.2013, 18:23, "psixo...@gmail.com" <psixo...@gmail.com>: > >>>> Здравствуйте, Nginx-ru. > >>>> > >>>> Дано: домен с большим количеством поддоменов. Задача: > >>>> открыть доступ только для ограниченного круга лиц, включая > мобильные > >>>> клиенты. Крайне желательно ограничиться средствами nginx, > не > >>>> вмешиваясь в скрипты сайта. Авторизация нужна только для того, > чтобы > >>>> не могли зайти люди "с улицы". Т.е. вполне подойдет что-то > слабенькое, > >>>> как, например, факт наличия куки у клиента и т.п. Никак не > могу > >>>> придумать, как это реализовать. > >>>> Basic-авторизация не подходит, т.к. она не > кроссдоменная. > >>>> Рассматривал вариант когда сайт не пускает никого, у кого > >>>> нет определенной куки, а получить ее можно, зайдя на определенный > урл > >>>> внутри сайта. Возникли проблемы с внесением изменений в > текущую > >>>> конфигурацию nginx: > >>>> > >>>> if ($cookie_edws != '1033'){ > >>>> return 444; > >>>> } > >>>> > >>>> location = /auth_url { > >>>> add_header Set-Cookie "lcid=1033;Domain=.domain.com > ;Path=/;Max-Age=31536000"; > >>>> rewrite ^(.*)$ domain.com persistent; > >>>> } > >>>> > >>>> if (!-e $request_filename) { > >>>> rewrite ^(.*)$ /index.php break; > >>>> } > >>>> > >>>> Таким образом, если физически auth_url не существует, то управление > в > >>>> location = /auth_url не попадет никогда, а всегда будет передано в > if > >>>> (-e $request_filename). Даже если вмешаться в структуру сайта > (что > >>>> неприемлимо) и создать файл auth_url, то в location управление > не > >>>> попадет из-за существования if ($cookie_edws != '1033'). > Замкнутый > >>>> круг какой-то. > >>>> > >>>> Может многоуважаемый All подскажет как быть? > >>>> > >>>> -- > >>>> С уважением, > >>>> Psixozzz mailto:psixo...@gmail.com > > > -- > С уважением, > Вадим mailto:psixo...@gmail.com > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- С ув. М.А. Мохначевский Отдел системного администрирования ООО "Компания "СахаИнтернет НТ" к.т. (4112)219711 доб. 927
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru