fredrsf
@fredrsf
Веб-разработчик (Symfony)

Как сменить директорию root nginx в зависимости от cookies?

Добрый день, необходимо подменять корневую директорию для запросов root в зависимости от cookies. Что-то типа
root /path/to/rails/app/public;
if ($http_cookie ~* "dev_access") {
  root /path/to/rails/app2/public;
}

Как-нибудь возможно такое реализовать? В зависимости от чего еще можно подменить директорию?
  • Вопрос задан
  • 4587 просмотров
Решения вопроса 1
Anonym
@Anonym
Программирую немного )
Читаем документацию:
синтаксис: root путь;
умолчание: root html;
контекст: http, server, location, if в location

Вот так работает.
root /var/www/default;
location / {
    if ($http_cookie ~ 'test') {
        root /var/www/test;
    }
    try_files $uri $uri/ /index.html;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kashtanoff
Есть такой код, в обоих директориях одинаковые копии сайта (Yii)
server {

        root /root1;

        index  index.html index.htm index.php;

        server_name domain.ru;

        location / {
                if ($cookie_VAR = "1") {
                        root /root2;
                }

                try_files $uri $uri/ /index.php?$args;
        }

        #error_page 500 502 503 504 /50x.html;

        location ~ \.php$ {
                if ($cookie_VAR = "1") {
                    root /root2;
                }

                *********
        }
}


При установленной куке работает только главная страница, остальное не работает.
Сайт во второй директории при привязке его к отдельному домену работает полноценно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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