如果存在 cookie,Nginx 重定向 [英] Nginx redirect if cookie present

查看:38
本文介绍了如果存在 cookie,Nginx 重定向的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到了一些关于使用 Nginx 检查 cookie 的有限资源,但我真的找不到我想要的答案,希望你们中的一些 Nginx 高手可以帮助我.

I've seen some limited resources on checking for cookies with Nginx, but I couldn't really find the answer I was looking for, hopefully some of you Nginx masters can give me a hand.

基本上我有一个虚拟主机,我想重定向到不同的域,除非用户有 cookie,这是我创建的:

Essentially I have a vhost that I'd like to redirect to a different domain unless the user has a cookie, here is what I've created:

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

但它似乎不起作用,我收到错误消息:

But it doesn't seem to work, I get the error:

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

我不知道如何在这里进行,各位有什么想法吗?

I'm not sure how to proceed here, any ideas guys?

推荐答案

这是有道理的.我会用不同的根文件夹定义另一个虚拟主机(beta.example.com)并在遇到 cookie 时 - 重写

That makes sense. I would define another virtual host (beta.example.com) with that different root folder and upon encountering cookie - do a rewrite

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

You can't set different roots for a domain conditionally, but you can redirect (rewrite) to another domain conditionally

这个人的例子不久前帮助了我http://nicknotfound.com/2009/01/12/iphone-带nginx的网站/

This guy's example helped me a bit ago http://nicknotfound.com/2009/01/12/iphone-website-with-nginx/

这篇关于如果存在 cookie,Nginx 重定向的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆