Nginx перенаправляет, если присутствует файл cookie

Я видел некоторые ограниченные ресурсы по проверке файлов cookie с помощью Nginx, но я не мог найти ответ, который искал, надеюсь, некоторые из вас, мастера Nginx, могут помочь мне.

По сути, у меня есть виртуальный хост, который я хотел бы перенаправить на другой домен, если у пользователя нет файла cookie, вот что я создал:

server {
  listen 80;
  server_name example.com;

  if ($http_cookie ~* "dev_cookie" ) {
    root /home/deploy/apps/example/current/public;
    passenger_enabled on;
    rack_env production;
    break;
  }
  rewrite ^/(.*) http://beta.example.com/$1 permanent;
}

Но это не работает, я получаю сообщение об ошибке:

[emerg]: "root" directive is not allowed here in /opt/nginx/conf/nginx.conf:45

Я не уверен, как действовать здесь, есть идеи, ребята?


person JP Silvashy    schedule 29.05.2010    source источник


Ответы (1)


Это имеет смысл. Я бы определил другой виртуальный хост (beta.example.com) с этой другой корневой папкой и при обнаружении файла cookie - перезаписал

Вы не можете установить разные корни для домена условно, но вы можете перенаправить (переписать) на другой домен условно

Пример этого парня помог мне немного назад http://nicknotfound.com/2009/01/12/iphone-website-with-nginx/

person hndcrftd    schedule 29.05.2010