Nginx https重定向-停止进一步的规则处理

Nginx https重定向-停止进一步的规则处理,https,nginx,rewrite,Https,Nginx,Rewrite,我正在尝试配置从旧站点到新站点的http和https重定向 根据重写指令文档: 如果替换字符串以http://开头,则客户端将 被重定向,任何进一步的重写指令都将终止 我试图用https实现同样的效果,但没有效果。 这是我的服务器配置: listen 80; listen 443 ssl; server_name mydomain.com rewrite ^/path/resource(.*)$ $scheme://newdomain.com/newpath/resource$1 perman

我正在尝试配置从旧站点到新站点的http和https重定向

根据重写指令文档:

如果替换字符串以http://开头,则客户端将 被重定向,任何进一步的重写指令都将终止

我试图用https实现同样的效果,但没有效果。 这是我的服务器配置:

listen 80;
listen 443 ssl;
server_name mydomain.com

rewrite ^/path/resource(.*)$ $scheme://newdomain.com/newpath/resource$1 permanent;
...
return 301 http://newdomain.com/newpath/;
使用http我得到了我想要的:如果我访问mydomain.com/path/resource,我将被重定向到newdomain.com/newpath/resource

但是,https也会将我重定向到

我已登录重写,在这两种情况下,重写规则都匹配,但https协议不会停止进一步的规则处理

我有一种感觉,要么我错过了一些非常明显的东西,要么我没有正确处理这个问题。如果可行的话,我不介意用任何不同的方式来做


你们中有人知道如何用https实现http重定向吗?

我通常喜欢使用
返回
而不是
重写
重定向,请尝试将路径与位置块匹配

location ~ /path/resource(.*) {
    return 301 $scheme://newdomain.com/newpath/resource$1;
}
我想这样你肯定知道不会有进一步的处理,因为它只有一行,试试看,告诉我它是怎么回事


PS:这将维护请求的
$scheme
,对
http://
的请求将被重定向到
http://
https://
的请求将被重定向到
https://

我已经尝试过这一点,并且无论原始url是http还是https,我总是被重定向到http。您可以编写您使用的新配置吗?
服务器{listen 80;listen 443 ssl;ssl证书…crt文件;ssl证书…密钥…密钥文件;服务器名称mydomain.com www.mydomain.com;root…;location~/path/resource.php(.*){返回301$scheme://newdomain.com/newpath/resource$1;     }
我不知道这一点,但我通常会创建两个不同的服务器,一个用于ssl,另一个不用于ssl。我尝试在没有listen 80;的情况下使用相同的行为。在与工作伙伴简短交谈后,我开始怀疑是否可以将secure 301从具有证书的域重定向到具有另一证书的域L