nginx 将除子路径之外的所有内容重写为 https?

nginx 将除子路径之外的所有内容重写为 https?

我希望所有 http 类型的 URL 都重定向到 https 类型。

http://example.com/blah/blah

更改为

https://example.com/blah/blah

我的 nginx 配置中有一段代码可以实现这种效果:

upstream examplewsgicluster {
    server unix://tmp/example.sock;
}

server {
    listen         80;
    server_name    beta.example.com www.example.com example.com;
    rewrite        ^ https://example.com$request_uri? permanent;
}

server {
    listen 443;

    location / {
        include uwsgi_params;
        uwsgi_pass examplewsgicluster;
        uwsgi_read_timeout 700;
    }
}

我如何编辑此规则以便以 /admin/ 开头的路径不会被重定向?

所以http://example.com/admin/blah/blah不会被重定向。

答案1

server {

    listen 80;
    server_name beta.example.com www.example.com example.com;

    location /admin {
        [ ... ] 
    }

    location / {
        return 301 https://example.com$request_uri;
    }

}

相关内容