Nginx-将所有“结帐”流量重定向到 https?

Nginx-将所有“结帐”流量重定向到 https?

我想确保没有人可以在没有 https 的情况下完成结帐流程。如果不是,我该如何将以 /checktout 开头的任何内容(即 example.com/checkout 和 example.com/checkout/process)重定向到 https。

反之亦然,我不希望任何页面能够通过 https 访问除非它有 /checkout。所以其他内容都应重定向到 http。

答案1

使用静态位置:

server {
        listen   80 default;
        server_name  example.com;

        access_log  /var/log/nginx/example.com.access.log;

        location / {
                root   /var/www/example.com;
        }

        location /checkout {
                rewrite         ^/(.*)$ https://example.com/$1 redirect;
        }
}

server {
    listen   443;
    server_name  example.com;

    location / {
            rewrite         ^/(.*)$ http://example.comt/$1 redirect;
    }

    location /checkout {
            root /var/www/example.com/checkout;
    }

    ssl  on;
    ssl_certificate  myssl.crt;
    ssl_certificate_key  myssl.key;

}

相关内容