nginx 重写文件夹 http 到 https

nginx 重写文件夹 http 到 https

我目前有 2 个服务器容器,1 个用于 http,另一个用于同一服务器但使用 https。我想使用Listen 80;and合并这些容器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;
    }

这不起作用,有人知道吗?

答案1

正如迈克尔·汉普顿所说,最好使用针对端口 80 和 443 的单独服务器 {} 块来实现这一点。

另一个解决方案是这样的:

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

相关内容