我给女朋友讲编程网络系列(3)—网页重定向,301重定向,302重定向
虽然以前只在淘宝买东西,不过现在对其他电商也不排斥了,就比如京东吧,今天就以京东为例。
你在浏览器中输入“360buy.com”,看看发生了什么?
另外输入“jingdong.com”,再看看发生了什么?看看网址变了没有?
见证奇迹,请看下图:
不管你输入哪个网址,都会转到这个网址。
这其实叫“重定向”,那么怎么实现网站重定向呢?
任意新建一个网页,如a.html,名字随便叫,只要后缀是.html就行了。输入下面的html代码:
<html>
<head>
<meta http-equiv="Refresh" content="5;url=http://www.jd.com" />
</head>
<body >
等5秒,我就要找强哥了。
</body>
</html>
保存后,在浏览器中打开这个网页,等5秒,你会看到这个网页转到了京东首页。
起作用的就是下面这行代码:
<meta http-equiv="Refresh" content="5;url=http://www.jd.com" />
<meta> 标签必须位于文档的头部,它提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
http-equiv="Refresh"是meta标签的一对属性 键/值对,它告诉了浏览器根据content的内容来“自动刷新”网页并指向新的网址,"5;url=http://www.jd.com"中的5就是是时间间隔,单位是秒,也就是过5秒后刷新,url=http://www.jd.com的意思是跳转到新的网址http://www.jd.com。
这样就可以从某一个网页或网站跳转到另一个网页或网站了。它的专业术语叫“重定向”,等会给你讲点更专业的内容。
是不是很简单啊,不过,这种方式过时了。这是2000年以前经常使用的方法。
“重定向”指的就是通过某种技术手段,把你请求的某个网页或网站,跳转到另外一个网页或网站,比如你输入”jingdong.com”,它跳转到了”jd.com”。
重定向的方式有:301重定向、302重定向与meta fresh。上面讲的就是meta fresh方式。
下面讲讲301重定向和302重定向:
1,
301代表永久性转移(Permanently Moved),301重定向主要是将需要转移的网址重定向另一个新的网址上,并且是永久性转移,比如你输入了”jingdong.com”,它总会跳转到”jd.com”,一般网站更换了域名或者有多个域名,都是使用这种方式跳转,这种方式几乎不影响网站在百度中的排名,因此是最友好的重定向方式。
2,
302代表暂时性转移(Temporarily Moved ),这个内容我搜了很多文章,比如什么时候使用302重定向,结果没有令我满意的。后来查看自己的IIS重定向的设置时发现了
307重定向,看来内容真是多啊。下面谈谈我的看法,看出来错误的请帮我指正。
我觉得302重定向是这样使用的,比如我有个域名A,对应的网站程序是Web1,由于某种原因域名A无法访问了,比如域名到期了还没交费,被管理员停了,但是你的网站主机还有费,还可以登录,而且你还有另外一个闲置的域名B,这个时候把B域名绑定到网站Web1上,但是对网站Web1设置302重定向,重定向到域名A,这样,站长发表的新文章,虽然是通过B域名来访问,但是搜索引擎仍然把域名A当做网站Web1的作者,这样,在A不能访问的期间,仍然可以通过域名B来增加域名A在搜索引擎中的权重,这对临时性的维护域名A就比较重要。
不知道我的理解对不对,希望了解的朋友帮忙解释一下。
不过302重定向使用的情况非常少,可以说,基本都是使用301重定向。下面是摘抄的两段解释:
1,什么时候需要做302重定向呢?
当一个网页经历过短期的URL的变化时使用。比如A域名因为某种原因暂时不能够访问,站长通过B域名来实现网站的暂时访问,这时做好302重定向,就能够被搜索引擎蜘蛛正确地处理,搜索引擎会依然会抓取新的内容而保存旧的网址。这样就不会影响原来网站域名在搜索引擎的权重及排名。
当然,在我们日常建站中,302重定向使用概率非常小,远不及301重定向用得多,至少小虫是这样认为的。这里只是让大伙做个了解。有的站长说302重定向会导致排名下降,小虫认为是没有正确做好的原因。望大家一起学习,共同进步。
2,HTTP 的重定向(301,302,303,307)
301 永久重定向,告诉客户端以后应从新地址访问.
302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.
但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化
303:对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。
307:对于POST请求,表示请求还没有被处理,客户端应该向Location里的URI重新发起POST请求。
下面重点讲一下,如何通过IIS8来配置网站的重定向。
一,配置网站WebTest2
1, 将你的网站或网页放到一个文件夹中,比如WebTest2中。
如何没有网站,可以在WebTest2中新建一个index.html文件,然后把下面的内容复制粘贴进去保存:
<html>
<head>
</head>
<body >
WebTest2欢迎您。
</body>
</html>
2,打开IIS8,也可以看下图操作,在Default web site上右击,选择添加应用程序,选择物理路径,确定就行了。
二、使用同样的方法配置网站WebTest2
不过把网页index.html中的内容修改一下:
把【WebTest2欢迎您。】修改为【WebTest1欢迎您。】
三、配置WebTest2重定向到WebTest1
1,打开重定向设置框:
(1) 单击WebTest2
(2) 单击功能视图
(3) 双击HTTP重定向
2,配置网站WebTest2的重定向
直接按照下图操作。
说明:
(1) 本机一般都是使用localhost表示。下面是百度百科的解释:
localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口(loopback)的一个标准主机名,相对应的IP地址为127.0.0.1
(2) 上面我举得例子,从jingdong.com重定向到jd.com,这是域名的重定向,我这里做的是网站的重定向,不知道这个例子是不是合适,不过如何设置301重定向确实就是这么做的。
(3) 图上这4步操作完成后,单击最右上角的“应用”。相当于保存。
四、见证奇迹
1,分别在网站WebTest1和WebTest2上右击,选择【管理应用程序】,选择【浏览】,然后会发现网页上总是显示【WebTest1欢迎您。】
这就说明设置重定向成功了,因为你打开WebTest2,它重定向到了WebTest1。
不过,我测试的时候,只有一次成功了,后面测试了好几次,浏览器都给我直接转到hao123了,不知道是不是浏览器的原因。