如何实现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 前言 一个问题,一篇文章,一出故事。 笔者在NextCloud生产环境中需要实现首次登录显示公告 …

Nginx
如何隐藏Nginx的版本号?

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

Nginx
如何解决https请求不安全http页被阻止问题?

1 前言 一个问题,一篇文章,一出故事。 笔者最近代理公司应用,发现https的页面有请求不安全的h …