我可以将某些特定的http文件夹重写为https文件夹,但是除了这些特定的文件夹,我无法将所有https从https重写为http;我陷入了困境
使用NGinx 1.12作为代理,同时处理http和https
我有一个服务器部分来处理http 80,一个服务器部分来处理https(我知道它们可以在同一部分中在一起)。
他们俩都是以这种方式开始的
location / {
proxy_pass
server {
listen 80;
我有
location ~ ^/(xxx|yyy|zzz)/.*$ {
rewrite ^ https://www.example.com$uri permanent;
}
每当我进入http时,它将xxx,yyy和zzz文件夹重定向到https很好。到目前为止,一切都很好。
但在server {
listen 443 ssl;
下
,我想将xxx,yyy,zzz文件夹以外的所有内容重定向到http。
我确实尝试在https部分进行相反的操作,这意味着:
location / {
rewrite ^ http://www.example.com$uri permanent;
}
和
location ~ ^/(xxx|yyy|zzz)/.*$ {
#do nothing
}
但它不起作用,我收到404错误或循环
答案 0 :(得分:0)
我发现Nginx唯一的解决方案是代理,这使Apache能够处理其重定向。
所以, 一种。 nginx 80重定向到nginx 443特定的文件夹。 b。通过nginx 443将所有https重定向到apache 443,然后在apache 443 conf中我进行测试(如果是特定文件夹,则停止),否则我将重定向到nginx 80。
它正在工作,但是我确定可以让nginx处理它并避免此1循环。如果有人作为一个漂亮的答案:-)