nginx重写文件夹http到https

我目前有2个服务器容器,http为1,另一个为同一个服务器,但https。 我想用Listen 80;合并这些容器Listen 80;Listen 443 ssl; ,这工作,但我需要重写一个不同的URL:

  location ^~ /wp-admin { rewrite ^ https://domain.com$request_uri? permanent; } location ^~ /wp-login.php { rewrite ^ https://domain.com$request_uri? permanent; } 

当HTTP和HTTPS结合使用时,会导致无限的位置循环。 我需要改变模式,但我没有得到它的工作:

  location ~ ^http://domain\.com/wp-admin { rewrite ^ https://domain.com$request_uri? permanent; } location ~ ^http://domain\.com/wp-login.php { rewrite ^ https://domain.com$request_uri? permanent; } 

这不行,有人知道吗?

正如迈克尔·汉普顿(Michael Hampton)所说,对于端口80和443,最好使用单独的服务器块来完成。

另一种解决scheme是这样的:

 location ^~ /wp-admin { if ($server_port = 80) { rewrite ^ https://domain.com$request_uri? permanent; } }