域名重定向
1.什么是重定向?
简单讲,就是从网址A调转到网址B。
官方定义:重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
2.为什么需要重定向?什么时候需要重定向?
官方的比较简洁的说明:
301 redirect: 301 代表永久性转移(Permanently Moved)
302 redirect: 302 代表暂时性转移(Temporarily Moved )
meta fresh:通过网页中的meta指令,在特定时间后重定向到新的网页,现在很少用了。
4.301 redirect 和302 redirect的区别
详细来说,301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。
<?php header("HTTP/1.1 301 Moved Permanently"); Header("Location: http://www.domain.com"); ?>
2)项级域名 301 重定向到带 www 的二级域名(例如:旧域名301重定向到新域名)
<?php $host = $_SERVER[\'HTTP_HOST\']; $request = isset($_SERVER[\'REQUEST_URI\']) ? $_SERVER[\'REQUEST_URI\'] : \'\'; if($host == \'domain.com\'){ header(\'HTTP/1.1 301 Moved Permanently\'); header(\'Location: http://www.domain.com\'.$request); } ?>
302重定向方法:
1)所有网页 302 重定向指定网址
<?php header("Location: http://www.domain.com"); ?>
2)指定网址,302到另一个网站的首页(例如:旧域名302重定向到新域名)
<?php $host = $_SERVER[\'HTTP_HOST\']; if($host == \'domain.com\'){ header(\'HTTP/1.1 302 Moved Temporarily\'); header(\'Location: http://www.domain.com\'); } ?>
ps:请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。