在nginx配置文件中仅将www请求重定向到https

时间:2018-02-14 13:00:28

标签: nginx

我在EBS上运行了一个节点应用程序,我想强制执行https。我使用以下命令重写了nginx配置文件

server_name www.mydomain.com; if ($http_x_forwarded_proto != "https") { rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent; }

这很好但我有一个dev.mydomain.com的独立开发域,我希望通过http而不是https连接到它。

是否有一个nginx前缀变量可以访问... ...

server_name www.mydomain.com; if ($http_x_forwarded_proto != "https" && $uri_prefix == 'www') { rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent; }

1 个答案:

答案 0 :(得分:0)

Nginx不允许多个或嵌套的if语句

你可以试试这个配置,但......它不是那么优雅 `

if ($http_x_forwarded_proto != "https") {
   set $myvar http;

}
if ($host ~ ^www) {
   set $myvar "${myvar}www";
}

if ($myvar = 'httpwww') {
  rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}

`