我希望 Nginx 将访问者重定向到我的顶级域上的 HTTPS,但不适用于某些子域(因为我不想费心将子域添加到我的证书中,而且无论如何都不需要)。似乎正在发生的事情是 Nginx 重定向到我的顶级域以及所有子域上的 HTTPS,尽管我只是明确地将重定向放在顶级域的服务器块中。下面基本上是我这样做的方式:
server {
server_name example.com;
listen 80;
return 301 https://example.com$request_uri;
}
server {
server_name example.com;
listen 443 ssl;
...
}
server {
server_name nossl.example.com;
listen 80;
}
Run Code Online (Sandbox Code Playgroud)
当用户访问http://nossl.example.com 时,他们被迫使用 SSL (HTTPS) 并因此收到有关证书的丑陋警告。我怎么能让它不这样做?
这是我想出的丑陋的解决方案。我为https://nossl.example.com添加了另一个服务器块,该服务器块重定向到http://nossl.example.com。我认为应该有一个更优雅的解决方案。
server {
server_name example.com;
listen 80;
return 301 https://example.com$request_uri;
}
server {
server_name example.com;
listen 443 ssl;
...
}
server {
server_name nossl.example.com;
listen 80;
}
server {
server_name nossl.example.com;
listen 443 ssl;
return 301 http://nossl.example.com$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3886 次 |
最近记录: |