实际上很多SEO培训机构对于网站301重定向都会讲,然后我们并不一定会重视。其原因还是感觉麻烦,需要操作配置文件和服务器或者虚拟开局配合,不想搞。当然现在的互联网环境发展了,很多空间商都会帮助用户设置301或在虚拟空间的控制面板上有一键操作选项。当然主要原因还是认为一个新网站能有啥权重?有啥好集中的呢?简直就是白费力气嘛! 因此很多新手在网站上线初期都会解析www和根域名,但是不做301重定向就放着不管这一项了。其实小蚂蚁在刚进入网络建站优化那会也会犯这种错!简介301的意义不大,但后来小蚂蚁发现了问题,就是新站出现两个收录的情况! 在seo培训机构上都会讲搜索引擎对于每个二级域名都是单独看待的,如同人类的家庭,父母生育的小孩难道不是独立的个体吗?因此就会出现域名不同但网站页面完全的情况! 小蚂蚁一开始发现这种问题以后就着手了301重定向的操作,并后期凡是建立新站的时候都会解析根域和www域名并301,然而结果是然并卵。 没错,然并卵,新站做301几乎没有作用,还是会出现收录根域名的情况。尽管在一段时间过后会恢复成www域的收录删除根域收录。 虽然说小有气愤但起码一段时间以后会恢复,而没做301的就会出现一个域名两个独立站点并相同网页收录的情况,让搜索引擎都不知道谁是谁,如同西游记里的真假孙悟空。 而西游记里的真假孙悟空那一集是怎么解决的呢?是如来辨明真身后真孙悟空干掉六耳猕猴。那我就想了,既然新站301没有作用,那根本原因是因为小蚂蚁解析了根域和www域,那小蚂蚁就干掉根域,解除解析。 果然在后期出现双收录的域名恢复正常。随后小蚂蚁在网站从完全新站翻身后解析根域上去并301重定向后也没有出现双收录情况。 文章到这大家都应该清楚小蚂蚁要说的了!在搜索引擎优化中网站301重定向可以做,但那针对纯新站作用不大,还不如不解析。而到后期新站逐渐变为老站而我们也为增加用户体验就可以解析并设置301重定向,效果谈不上,但起码不会出现双收录的情况。 301重定向怎么做呢? 前面我们既然知道了网站301的性质,那么现在我们就来说下设置301的方法,时代在进步,而对于虚拟主机小蚂蚁不怎么清楚,因为小蚂蚁喜欢用服务器,而我的服务器环境呢就是安装的免费宝塔环境,301,ssl证书什么的,都可以直接在服务器安装的宝塔环境里的宝塔面板 创建网站那直接解决! 但并不是人人都用服务器,很多人因为各种原因选择了性价比更高的虚拟主机,虽然小蚂蚁对于虚拟主机的网站301重定向不是很懂,但现在的互联网环境下很多空间商都会在虚拟主机管理面板里增加301一键功能。但如果没有呢?我们也不着急,网络教程这么多,并不妨碍我们去搜索去查找啊! 首先IIS系统的301重定向方法 首先我们打开internet信息服务管理器,在欲重定向的网页或目录上按右键属性找到主目录然后鼠标选择"重定向到URL",图中最后一个选项。 然后我们在蓝色箭头处以重定向到我们自己要转向的网站。在"重定向到输入框中输入要跳转到的目标网页的URL地址 选中"资源的永久重定向"打上勾(切记) 。最后点击"应用"最后确定。 IIS7中的web.config301重定向 前提是IIS7的服务器,嫌弃上面iss6麻烦可以选择新建web.config上传根目录 以下是web.config文件代码 <configuration></configuration> <system.webserver></system.webserver> <rewrite></rewrite> <rules></rules> <rule name=""WWW" stopprocessing=""true""></rule> <match url="".*""></match> <conditions></conditions> <add input=""{HTTP_HOST}"" pattern=""^$""></add> <action type="Redirect" url="http://www/{R:0}" redirectType="Permanent" /> 直接复制以上代码到新建的文件web.config中在上传到网站根目录就可以了! Apache服务器环境实现301重定向 首先我们新建一个.htaccess的文件,如果本地电脑新建提示不支持无名称不能创建的话,我们就随意给个名称 比如1.htaccess。 创建完成后记事本打开在里面输入以下内容 <ifmodule mod_rewrite.c="">RewriteEngine OnRewriteCond %{HTTP_HOST} !^不带www的域名$ [NC]RewriteRule ^(.*)$ http://www./$1 [R=301,L]</ifmodule> 如果有多种需求,规则如下: <ifmodule mod_rewrite.c="">RewriteEngine OnRewriteCond %{HTTP_HOST} ^多个域名$ [NC]RewriteRule ^(.*)$ http://主域/$1 [R=301,L]RewriteCond %{HTTP_HOST} ^多个域名$ [NC]RewriteRule ^(.*)$ http://主域/$1 [R=301,L]</ifmodule>改成你自己的,自行修改。 nginx环境的301重定向方法 我们用ftp登录nginx服务器,依次打开找到usr/local/nginx/conf/conf.conf 然后打开添加以下代码。 server { listen 80; server_name http ://不带www的域名 http ://带www的域名 ; #server_name end if ($host != "主域" ) { rewrite ^/(.*)$ http://主域/$1 permanent; } } 我们用文章简单解释下代码:如果当前请求的不是带www的域名 ,那么将跳转到www的站。 补充:nginx绑定多个域名且域名都是顶级域名是可直接在配置文件里用 return301https://$host$request_uri; 其它301重定向方法 meta refresh 301重定向设置 这类meta很好理解就是在网页的注明 <meta http-equiv=""refresh"" content=""5;" url="http://你要重定向的域名""/>一般放在页头head.php js301重定向方法 js重定向就是javascript利用Location 对象进行url重定向和下面的程序语言设置原理一样,利用程序的自身特点。 <script language=""javascript"type="text/javascript"">window.location.href="http://你的网站";</script> 这类js最好放在页头,也就是放在网站顶端,页面解析是从上往下的。所以建议放在最页头,加载快点。方法和meta refresh重定向一样。 asp/php/asp.net程序语言301重定向方法 PHP下的301重定向 <? Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www" ); exit; ?> <title>HTTP/1.1 301 Moved Permanently</title> HTTP/1.1 301 Moved Permanently ASP下的301重定向 <%@ language="VBScript"><!--%@--> <% Status="301 Moved Permanently" AddHeader "Location","http://" %> ASP .NET下的301重定向 <script runat=""server""> private void Page_Load(object sender, System.EventArgs e) { Status = "301 Moved Permanently"; AddHeader ("Location","http://); } </script> 测试301设置是否生效的方法 如果我们按本文以上的方法设置了301,但不知道是否生效那么我们就可以直接用最简单的方法,比如是用非www的访问,看是否跳转到www。或借助HTTP状态查询工具查询 http://tool.chinaz.com/pagestatus/ https://tools.aizhan.com/pagestatus/ 我们在这些工具里面输入网址点击查询既可在下方查看返回状态码,如果状态码301既表示成功,如果是200或其它状态码既表示301重定向未生效或设置错误。 比如说上图中我们小小蚂蚁博客的www域名就被小蚂蚁301重定向到了xiaoxiaomayi.com这个域名上! 结语:网站301重定向尽管是必不可少的,但对于纯新站的效果微乎其微,到不如只解析一个域名来的实在,等等网站翻身,尽管咸鱼翻身后还是咸鱼,但起码更咸了啊,等那时候301重定向对于搜索引擎而言作用已经不大,但在用户体验来看还是有一定效果的!