nginx重写所有的HTTPS除了子path?

我希望所有的URL都被redirect到https。

http://example.com/blah/blah

改变

https://example.com/blah/blah

我有这个片段在我的nginx conf中实现了这个效果:

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 /开头的path不被redirect?

所以http://example.com/admin/blah/blah不会被redirect。

 server { listen 80; server_name beta.example.com www.example.com example.com; location /admin { [ ... ] } location / { return 301 https://example.com$request_uri; } }