nginx重定向到https,除非特定网址

时间:2017-11-28 12:33:12

标签: nginx

大家好,所以我在我的nginx配置中有这个重定向,以确保所有页面都使用https,但是如果网址匹配$hostname/videos/:some_id,我想添加一个条件来停止重定向,只有当视频直接在主机之后因为我还有其他网址,例如$hostname/admin/videos/:some_id仍然需要https。

我该怎么做?

if ($http_x_forwarded_proto != 'https') {
  return 301 https://$server_name$request_uri;
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

嗯,不使用if语句的最简单方法是拥有两个不同的服务器块。一个用于HTTP,一个用于HTTPS。

server {
    listen 80;
    server_name your_host_name;

    location /videos {
        ...
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    server_name your_host_name;
    listen 443 ssl;

    location / {
       ...
    }
}