Nginx作为代理:如何排除https下而非http下的特定文件夹

Nginx作为代理:如何排除https下而非http下的特定文件夹,nginx,mod-rewrite,nginx-config,Nginx,Mod Rewrite,Nginx Config,我可以将一些特定的http文件夹重写为https文件夹,但我不能将除了这些特定文件夹之外的所有https从https重写为http;我陷入了困境 使用nginx1.12作为代理,同时处理http和https 我有一个服务器部分来处理HTTP80,还有一个服务器部分来处理https(我知道它们可以放在同一个部分中) 他们两个都是这样开始的 位置/{ 代理通行证 服务器{ 听80; 我有 位置~^/(xxx | yyy | zzz)/.${ 重写^https://www.example.com$ur

我可以将一些特定的http文件夹重写为https文件夹,但我不能将除了这些特定文件夹之外的所有https从https重写为http;我陷入了困境

使用nginx1.12作为代理,同时处理http和https

我有一个服务器部分来处理HTTP80,还有一个服务器部分来处理https(我知道它们可以放在同一个部分中)

他们两个都是这样开始的
位置/{
代理通行证

服务器{
听80;
我有
位置~^/(xxx | yyy | zzz)/.${
重写^https://www.example.com$uri永久性;
}
只要我在http中,它就会重定向到https,适用于xxx、yyy和zzz文件夹。到目前为止,一切都很好

但是在
服务器下{
收听443 ssl;
,我想重定向除xxx,yyy,zzz文件夹以外的所有内容以返回http

我尝试在https部分做相反的操作,意思是:
位置/{
重写^http://www.example.com$uri永久性;
}
位置~^/(xxx | yyy | zzz)/.${
#无所事事
}

但是它不起作用,或者我得到一个404错误或者一个循环

当Nginx是一个代理时,我找到的唯一解决方案是让Apache在其一侧处理重定向

所以, a、 nginx 80正在重定向到nginx 443特定文件夹。 b、 所有的https都由nginx 443重定向到apache 443,然后在apache 443 conf中我做一个测试,如果它在特定文件夹中,我停止,否则我重定向到nginx 80


它正在工作,但我确信可以让nginx处理它并避免这个1循环。如果有人回答得很好:-)

我的链接在文档中对我没有帮助