需求介绍
随着HTTPS的普及,我们经常需要把域名的HTTP协议请求自动跳转到HTTPS,本文介绍如何通过nginx来实现HTTP到HTTPS的301跳转。
Nginx配置文件
在你网站的nginx配置文件夹中,添加一个配置文件。linux系统中,nginx的配置文件路径通常是/etc/nginx/conf.d/
下,主配置文件是/etc/nginx/nginx.conf
。假如我们要配置跳转HTTPS的域名是:www.a.com
,配置文件如下:
server {
listen 80;
server_name www.a.com;
rewrite ^/(.*) https://www.a.com/$1 permanent;
}
代码解释
permanent
代表301跳转。意思是网址永久迁移到新地址。如果改成redirect
则代表302跳转,意思是网址临时迁移到新地址。server_name
是限定改配置文件生效的域名,不配置的话会应用到该端口的所有域名上。rewrite
是重写网址,可以使用正则表达式。上面配置文件中的重写规则是,将所有80端口上,并且域名是www.a.com的请求,301重定向到https://www.a.com上,并且携带所有的URL参数(代码中的.*
在正则表达式中代表匹配换行符之外的任意字符,因为URL中没有换行符,所以相当于匹配URL中的所有字符)。