最近博客启用了https,为了实现、、 用301重定向,没有找到完美的解决方案,最终自己摸索出方案,废话少说,直接上conf配置代码。
server {
listen 80; server_name tuhongwei.com ; return 301 https://www.tuhongwei.com$request_uri; } server { listen 443 ssl; ssl_certificate /home/wwwroot/PHP7/etc/tuhongweissl/tuhongwei.crt; ssl_certificate_key /home/wwwroot/PHP7/etc/tuhongweissl/tuhongwei.key; server_name tuhongwei.com; return 301 https://www.tuhongwei.com$request_uri; } server { listen 443 ssl; ssl_certificate /home/wwwroot/PHP7/etc/tuhongweissl/tuhongwei.crt; ssl_certificate_key /home/wwwroot/PHP7/etc/tuhongweissl/tuhongwei.key; server_name ; ....... }说明:第一段代码是将; 301重定向,第二段代码是将 301重定向,第三段代码为指定主机用ssl连接,......为网站程序的配置文件。
然后用站长工具 检查下http状态:
可以看到返回状态码均为301,所有http和不带www的域名都301重定向到了带www的https链接,这样有利于SEO。
从网上看到另一种方式实现nginx链接301跳转到带www https的方法,配置如下:
server {
listen 80; listen 443 ssl; server_name tuhongwei.com; return 301 $schmeme://; } server { listen 80; server_name *.tuhongwei.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name tuhongwei.com; root /home/wwwroot/PHP7/domain/aihaba.com/web$subdomain; ssl_certificate /home/wwwroot/PHP7/etc/aihabacom/214014475050178.pem; ssl_certificate_key /home/wwwroot/PHP7/etc/aihabacom/214014475050178.key; ...... }第一段代码是将tuhongwei.com 301跳转到 不管是http还是https链接。
第二段代码是把任何非https的二级域名()跳转到https的对应二级域名。
第三段是应对https的请求,挂载https证书。