Nginxで特定パス以外をSSLに転送したい。


Nginxで80番ポートにきたリクエストを自動的に443ポートにリダイレクトするようにしています。

[code]

    server {
      listen 80;
      listen [::]:80;
    
    
      return 301 https://$host$request_uri;
    }
    
[/code]

しかしある特定のパスにきた時にリダイレクトせずにそのまま80番ポートで受けられるようにしたいのですがこのような事はどうのようにすればいいのでしょうか。



[code]

    location /SOMEPATH {
        # return しない
    }   
    location / {
        # return する 
        return 301 https://$host$request_uri;
    }
    
[/code]

で分けるか、

[code]

    if ($request_uri !~ ^/SOMEPATH) {
        return 301 https://$host$request_uri;
    }
    
[/code]

と if で判定するか。



[code]

    location /SOMEPATH {
        # return しない
    }   
    location / {
        # return する 
        return 301 https://$host$request_uri;
    }
    
[/code]

で分けるか、

[code]

    if ($request_uri !~ ^/SOMEPATH) {
        return 301 https://$host$request_uri;
    }
    
[/code]

と if で判定するか。

