NGINX:仅基于特定URL的cookie重定向用户

时间:2015-03-26 12:51:24

标签: redirect cookies nginx server

我正在构建一个封闭的社交网络,目前当用户未登录时,他们将始终被重定向到我的域的主页。

我想做的是做以下事情:

  1. 使用NGINX检查用户是否已登录(通过检查cookie),然后当他们转到主页(mydomain.com)时重定向到mydomain.com/newsfeed。

    < / LI>
  2. 此检查仅应在用户浏览主页时应用,不应在任何其他网址上工作(否则将始终重定向)。

  3. 我对NGINX很新,并查看了使用Cookie进行重定向的各种教程但未能得到答案(最明显的是将重定向限制为仅限主页)。

    提前致谢!

2 个答案:

答案 0 :(得分:11)

最终正确的解决方案:

location ~* ^/$ {
 if ($http_cookie ~* "wordpress_logged_in") {
    return 301 http://example.com/newsfeed/;
 }
}

答案 1 :(得分:4)

让我假装我有一个像这样的cookie:name=value

server {
    listen 80;
    server_name mydomain.com;

    location ~* ^/$ {
        if ($cookie_name = "value") {
            return 301 http://example.com/newsfeed/;
        }
    }
}

位置区块仅与主页匹配,检查Cookie是否存在(您也可以使用if ($cookie_name)),如果存在,则将用户重定向到http://example.com/newsfeed/