Nginx 301 重定向实现不带www跳转到www

Nginx 301 重定向实现不带www跳转到www

    • 实现步骤如下:

要求实现这种功能。
Nginx 301 重定向实现不带www跳转到www_第1张图片

实现步骤如下:

打开nginx配置文件 cd /etc/nginx/sites-available 有些可能在nginx.conf里面

在配置文件里添加了一个server(如第一个红色区域)

Nginx 301 重定向实现不带www跳转到www_第2张图片

即可以实现。。
注意:在浏览器测试的时候要清除cookie和历史记录
参考:https://www.jb51.net/article/62999.htm
https://blog.csdn.net/qingjiaoforever/article/details/51393528?utm_source=blogxgwz0

Nginx下常见的301跳转有以下三种,虽然都能达到同样的目的。但是三种写法上还是有区别的,主要的区别是在正则匹配的性能上。
第一种:使用rewrite指令,通过正则匹配所有的URI后再去掉开头第一个/(反斜线)。

rewrite ^/(.*)$ https://www.hi-linux.com/$1;

第二种:同样使用rewrite指令,不同的是通过$request_uri变量匹配所有的URI。

rewrite ^ https://www.hi-linux.com$request_uri? permanent;

第三种:使用return指令,通过301状态码和$request_uri参数,直接告诉Nginx这是个301重定向和抓取指定URI。

return 301 https://www.hi-linux.com$request_uri;

这种方法是性能上最优的,因为rewrite指令有很多写法和规则,执行完所有正则匹配后,Nginx 才会知道这是一个301永久重定向。

你可能感兴趣的:(lnmp)