在nginx上强制HTTPS,但有异常

时间:2016-09-07 10:59:32

标签: nginx

目前我正在服务器块中使用以下配置强制使用HTTPS。

if ($scheme != "https") {
    rewrite ^ https://www.domain.tld$request_uri? permanent;
}

现在我想在此规则中为“http://www.domain.tld/some/url”添加一个摘要,并且无法找出有效的配置。

2 个答案:

答案 0 :(得分:0)

使用两个服务器块,一个用于安全,一个用于不安全的连接。

server {
    listen 80;

    location / {
        return 301 https://$host$request_uri;
    }
    location /some/url {
        ...
    }
    ...
    include /path/to/common/config;
}

server {
    listen 443 ssl;
    ...
    include /path/to/common/config;
}

您可以使用include指令从单独的文件中提取常用配置。

答案 1 :(得分:0)

知道了!

if ($request_uri != /some/url1) { 
    set $test  A; 
} 
if ($request_uri != /some/url2) { 
    set $test  "${test}B"; 
} 
if ($scheme = 'http') { 
    set $test  "${test}C"; 
} 
if ($test = ABC) { 
    rewrite ^ https://www.domain.tld$request_uri? permanent;
}