找了很多都不行,解说的不全,自己总结自己写,只有这个文章最全:nginx 301跳转到带www域名方法(不带www访问时重定向到带www域名)

.先科普下域名解析哈:
在这里插入图片描述

解析域名截图:
在这里插入图片描述
就可在windows7系统 :cmd 命令 :ping tofacebook.com
在这里插入图片描述

见图课件是 2.先说本人测试通过的方法,也是来自官方文档的方法。官方文档:http://nginx.org/en/docs/http/converting_rewrite_rules.html

本人网站测试地址:tofacebook.com (因cnblog原因,链接地址只能填www.tofacebook.com, 测试时先跳转到这个地址,再删除www测试) 直接上本人的服务器上NGINX安装OK的配置文件。

server {
listen 80;
server_name tofacebook.com;
return 301 http://www.tofacebook.com$request_uri;
}

server {
listen 80;
server_name www.tofacebook.com;

}

然后再服务器上 NGINX -t
service nginx reload
重新启动NGINX服务,然后再没有记录的浏览器上输入:tofacebook.com 访问正常,问题解决。
3.目前网络上搜索出来的方法如下

server {
listen 80;
server_name www.tofacebook.com tofacebook.com;
if ($http_host =uuid.online) {
rewrite (.*) http://www.tofacebook.com$1;
}

}
不推荐用这种方法,不是我不推荐,是nginx官方不推荐啊!!!
原话如下:This is a wrong, cumbersome, and ineffective way.
翻译过来就是:这是一种错误的,难处理的,无效的方法。
官方原文链接地址:http://nginx.org/en/docs/http/converting_rewrite_rules.html b.该方法未测试,不评价。 如下:在ngxin域名的配置文件vhost/www.tofacebook.com.conf(具体视你域名配置文件) 编辑如下:

server
{

........

server_name www.tofacebook.com ;//只留一个

......


文件的底部添加如下代码块(独立于上面的代码外):

server {
  server_name  tofacebook.com;
  rewrite ^(.*)$ http://www.tofacebook.com$1 permanent;
}

另外补充说明一点:下面的比较重要,请看完,谢谢。

301永久跳转,当用户或搜索引擎向网站服务器发出浏览请求时,
服务器返回的HTTP数据流中头信息中的状态码的一种,表示本网页永久性转移到另一个地址。
302临时跳转,也是状态码的一种,意义是暂时转向到另外一个网址。
二者的区别主要是,一句话,302容易被搜索引擎视为spam,301则不会。
permanent代表301永久跳转,改为redirect则为302临时跳转。

#nginx 301跳转 #跳转到带www域名方法 #不带www访问时重定向到带www域名

发布了12 篇原创文章 · 获赞 9 · 访问量 903

猜你喜欢

转载自blog.csdn.net/cyhlili100/article/details/103913109