Linux记录15-4.36

怎么为同一个网页配置第二个域名?

 

去改一下虚拟主机配置文件

Linux记录15-4.36

 

我们希望是原来的域名外,在增加一些域名同样访问到同一个站点

原本是如下:

Linux记录15-4.36

增加一个域名

Linux记录15-4.36

-t验错, -s 重载一下

Linux记录15-4.36

这时2个域名都可以访问同一个站点。

 

但这会对搜索引擎产生一个问题,需要以一个域名为主。

这时候就需要  域名重定向 ,就是进入的副域名都自动跳转到主域名。

 

域名重定向:

打开配置文件: vi  /etc/nginx/conf.d/blog.aminglinux.cc.conf

加上如下的一部分,

Linux记录15-4.36

$host  ——  域名的意思

/(.*)     / 斜杠后表示域名后要访问的URI

Linux记录15-4.36  斜杠后面所有的东西我们都叫做 URI (或者叫URL),这一部分是域名下具体要跳转的内容需要括起来()补充到新的域名下。

Linux记录15-4.36

第一个括起来的内容后面就是用  $1  对应代表, 如果有多个括号括起来,就序号顺延$2, $3......

 

permanent  是状态码,正常访问的状态码是200

(页面上按一下F12键,再刷新一下页面,看到的请求的链接都是状态码)

301 —— 永久重定向(Moved Permanently)

302 —— 临时重定向

304 —— (图片)缓存

404 ——  文件不存在(not found)

Linux记录15-4.36

改好配置文件 –t  验错, -s  重新加载

Linux记录15-4.36

成功的情况是:

原来去到blog.aminglinux.cc/?p=1  的链接成功跳转成了  www.aming.com/?p=1

Linux记录15-4.36

 

自动变成:

Linux记录15-4.36

 

 

以上是在浏览器上去测试,还可以在Linux下直接测试是否成功:

curl  -x127.0.0.1:80  –I  blog.aminglinux.cc/bbs/abc/1.txt

-x  指定访问的IP 和HOME

-I   只看Headers信息

Linux记录15-4.36

 

可见Location:一行, 访问的域名最后跳转成了http://www.aming.com//bbs/abc/1.txt

Linux记录15-4.36

 

rewrite 的时候,后面用 permanent 还是redirect  ?(也就是用301还是302?)

除了显示的状态码会不一样Linux记录15-4.36

permanent(301永久重定向),redirect(302临时重定向) 效果上没多大差异,

差别主要是个权重的问题。

 

为了让搜索引擎更好工作,需要让域名的权重转移,适合301永久重定向,就需要写的是permanent ,

如果是同一域名下内部文件的跳转,用 redirect 。

(比如www.aming.com/1.txt  跳到 www.aming.com/2.txt )

Linux记录15-4.36

 

Linux记录15-4.36

 

但是注意一点,就是rewrite只会跳转一次,所以域名必须是用主域名,不然就把跳转的一次机会浪费掉了导致内部文件没有跳转

Linux记录15-4.36

可见redirect 后的状态码显示:302 (临时重定向)

Linux记录15-4.36

所以

如果是域名的跳转用 301

如果不涉及域名的跳转用 302