# nginx 配置 301 重定向 {#nginx-配置-301-重定向}
本文讲解 nginx 如何配置重定向跳转。重定向分为 301 永久重定向和 302 临时重定向,本文主要讲解 301 永久重定向。网站在实际运营中,很可能会有重定向的需求, 如非 www 域名自动重定向为 www 域名, http 地址自动重定向为 https 地址等。当网站的域名做变更时,通过 301 重定向还可以将旧域名的分数排名转移到新域名。
# http 重定向到 https {#http-重定向到-https}
参考如下配置
# 将"http的www域名"重定向到"https的www域名"
server {
#http端口
listen 80;
server_name www.sofineday.com;
access_log /var/log/nginx/www.sofineday.com.access_log;
error_log /var/log/nginx/www.sofineday.com.error_log;
return 301 https://www.sofineday.com$request_uri;
}
# 配置https的www域名
server {
#https端口
listen 443 ssl;
server_name www.sofineday.com;
access_log /var/log/nginx/www.sofineday.com.access_log;
error_log /var/log/nginx/www.sofineday.com.error_log;
#https的证书配置
ssl_certificate /etc/nginx/cert/_.sofineday.com.full_chain.pem;
ssl_certificate_key /etc/nginx/cert/_.sofineday.com.private.key;
root /static-file/blog;
}
# 主域名重定向到 www 域名 {#主域名重定向到-www-域名}
参考如下配置
# 将"http的主域名"重定向到"http的www域名"
server {
#http端口
listen 80;
server_name sofineday.com;
access_log /var/log/nginx/sofineday.com.access_log;
error_log /var/log/nginx/sofineday.com.error_log;
return 301 http://www.sofineday.com$request_uri;
}
# 将"http的www域名"重定向到"https的www域名"
server {
#http端口
listen 80;
server_name www.sofineday.com;
access_log /var/log/nginx/www.sofineday.com.access_log;
error_log /var/log/nginx/www.sofineday.com.error_log;
root /static-file/blog;
}
# 将"主域名或 http 域名"都重定向到 https 的 www 域名 {#将-主域名或-http-域名-都重定向到-https-的-www-域名}
提示
推荐该方案,终极方案,考虑得最完善! 做 seo 优化时,需要考虑该方案,详见seo 重定向
参考如下配置
# 将"http或https的主域名"重定向到"https的www域名"
server {
#http端口
listen 80;
#https端口
listen 443 ssl;
server_name sofineday.com;
access_log /var/log/nginx/sofineday.com.access_log;
error_log /var/log/nginx/sofineday.com.error_log;
#https的证书配置
ssl_certificate /etc/nginx/cert/_.sofineday.com.full_chain.pem;
ssl_certificate_key /etc/nginx/cert/_.sofineday.com.private.key;
return 301 https://www.sofineday.com$request_uri;
}
# 将"http的www域名"重定向到"https的www域名"
server {
#http端口
listen 80;
server_name www.sofineday.com;
access_log /var/log/nginx/www.sofineday.com.access_log;
error_log /var/log/nginx/www.sofineday.com.error_log;
return 301 https://www.sofineday.com$request_uri;
}
# 配置https的www域名
server {
#https端口
listen 443 ssl;
server_name www.sofineday.com;
access_log /var/log/nginx/www.sofineday.com.access_log;
error_log /var/log/nginx/www.sofineday.com.error_log;
#https的证书配置
ssl_certificate /etc/nginx/cert/_.sofineday.com.full_chain.pem;
ssl_certificate_key /etc/nginx/cert/_.sofineday.com.private.key;
root /static-file/blog;
}