如何实现Nginx首次访问跳转?

Nginx

1 前言

一个问题,一篇文章,一出故事。
笔者在NextCloud生产环境中需要实现首次登录显示公告页,由于用户首次登录会默认进入“/index.php/apps/dashboard”页面面,因此笔者希望首次进入dashboard页面后自动跳转到公告页(“/index.php/apps/announcementcenter”),而后面再次进入保留在“dashboard”页面,因此整理此文。

2 最佳实践

2.1 增加配置

vim /etc/nginx/conf.d/nextcloud.cmdschool.org_443.conf

加入如下配置,

map $http_cookie $first_visit {
        default 0;
        "~*my_cookie=([^;]+)" $1;
}

server {
    #...
    add_header Set-Cookie "my_cookie=$first_visit; Path=/; HttpOnly";
    location /index.php/apps/dashboard {
        if ($first_visit = 0) {
            add_header Set-Cookie "my_cookie=1; Path=/; HttpOnly";
            return 302 /index.php/apps/announcementcenter/;
        }
        #...
    }
}

2.2 测试并重载使配置生效

nginx -t
systemctl reload nginx.serice
没有评论

发表回复

Nginx
如何使用Nginx发布维护公告?

1 前言 一个问题,一篇文章,一出故事。 最近由于需要发布维护公告,想着这种东西以后用得着,于是总结 …

Nginx
如何实现Nginx第一次访问跳转?

1 前言 一个问题,一篇文章,一出故事。 笔者在NextCloud生产环境中需要实现首次登录显示公告 …

Nginx
如何隐藏Nginx的版本号?

1 前言 一个问题,一篇文章,一出故事。 最近外部的安全扫描发现我们一个站点对外宣告Nginx的版本 …