如何为所有nginx网站重定向http到https
要重定向所有Nginx托管网站的流量,请在配置文件中输入以下代码:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
它使用变量$host,因此它可以应用于nginx托管的任何URL。
如何为单个nginx网站重定向http到https
我们需要更改Nginx Server配置文件以重定向流量。
$sudo nano /etc/nginx/sites-available/your_conf_file
在HTTP配置部分下,插入以下301重定向代码。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
将传入连接到“example.com”和“www.example.com”的请求,重定向到https下相同的url。
结构看起来像这样:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate example.com.crt;
ssl_certificate_key example.com.key;
# 其他配置
}
但是如何重定向 https://www.example.com呢?
我们需要另一个重定向块,将www重定向到非www下:
server {
# redirect all HTTP to HTTPS
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
# redirect HTTPS www.
listen 443 ssl;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate example.com.crt;
ssl_certificate_key example.com.key;
# other configuration
}
使用systemctl命令重新启动或者重新加载nginx,以便使新的更改生效。
$sudo systemctl reload nginx
日期:2020-07-07 20:57:17 来源:oir作者:oir
