您好,我正在尝试重定向所有请求以使用 https。我已创建了一个侦听端口 80 (http) 的服务器块,我想重定向用户以使用,https://
但我不确定如何获取主机名。
这是我的服务器块
server
{
listen 80;
server_name : *.example.org
return 301 https://{{hostname}}$request_uri
}
我知道可以通过 URI 访问,$request_uri
但是我不确定如何获取主机名。
您是否将它们并排附加,且没有空格?
答案1
迈克尔·汉普顿 (Michael Hampton) 发布的链接更详细地解释了这些变量,但这里是一个直接的答案。
server
{
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
您可以使用 curl 并查看标题来看到它的工作原理。
http://bob.example.com到https://bob.example.com
[root@hm1 conf.d]# curl --head bob.example.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.9.13
Date: Wed, 06 Apr 2016 02:01:24 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://bob.example.com/
Strict-Transport-Security: max-age=15780000; preload
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
http://alice.example.com到https://alice.example.com
[root@hm1 conf.d]# curl --head alice.example.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.9.13
Date: Wed, 06 Apr 2016 02:01:39 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://alice.example.com/
Strict-Transport-Security: max-age=15780000; preload
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff