我目前正在使用
location / {
if ($ssl_protocol = "")
{
rewrite ^ https://$host$request_uri? permanent;
}
}
在我的nginx conf中。这成功强制所有页面都是https。但是,我希望根页面和只有根页面(针对index.htm)可选地为http,这样当用户转到http://myserver.com时,它将不会重定向到https。我怎么能这样做?
(我能够选择性地不在某些子目录上使用ssl,通过指定它们的位置,例如/ nossl将允许http://myserver.com/nossl不是ssl)。如果用户转到http://myserver.com/somepage.htm我希望它重定向。
答案 0 :(得分:0)
您可以使用两种server
阻止方法将用户重定向到https
。然后,您就可以为索引页面及其资源(如果有)指定最小化http
站点。像这样:
server {
listen 80;
root /path/to/root;
location / {
return 301 https://$host$request_uri;
}
location = / {
index index.htm;
}
location = /index.htm { }
location /js { }
location /css { }
location /img { }
}
server {
listen 443 ssl;
root /path/to/root;
...
}