如果cookie存在,Nginx重定向

JP *_*shy 19 nginx

我在使用Nginx检查cookie时看到了一些有限的资源,但我找不到我想要的答案,希望你们中的一些Nginx大师可以帮我一臂之力.

基本上我有一个vhost,我想重定向到另一个域,除非用户有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;
}
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用,我得到错误:

[emerg]: "root" directive is not allowed here in /opt/nginx/conf/nginx.conf:45
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续这里,任何想法的家伙?

Rai*_*ine 21

那讲得通.我将使用不同的根文件夹定义另一个虚拟主机(beta.example.com),并在遇到cookie时进行重写

您无法有条件地为域设置不同的根,但您可以有条件地重定向(重写)到另一个域

这个家伙的例子在一段时间前对我有所帮助 http://nicknotfound.com/2009/01/12/iphone-website-with-nginx/