如何为所有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