301重定向主要是为了将域名A跳转到域名B,更多情况下是将不带www的域名跳转到带www的域名,那么301重定向应该怎么做呢,下面和大家介绍301重定向的做法,主要对Linux主机以及Windows虚拟主机实现方法进行讲述。

     (一)linux主机
      对于linux虚拟主机Apache服务器,需要支持.htaccess这个文件,因此首先需要确定主机是否支持.htaccess这个文件(不清楚的话可以询问主机商),如果支持的话,首先将两个域名都解析到这个服务器,然后在.htaccess中添加如下规则:
      RewriteCond %{http_host} ^ yourdomain.com [NC]
      RewriteRule ^(.*)$ http://www. yourdomain.com /$1 [R=301,L]

     如果你的网站根目录中已经存在了.htaccess文件,那么你可以直接修改该文件,然后将这条规则添加进去,如果你的网站根目录中不存在.htaccess文件,你可以先自己创建个htaccess.txt这样的空文件,然后添加如下规则,建成后将htaccess.txt文件上传到网站根目录,然后将htaccess.txt名修改为.htaccess,规则为:
     RewriteEngine on
     RewriteCond %{http_host} ^ yourdomain.com [NC]
     RewriteRule ^(.*)$ http://www. yourdomain.com /$1 [R=301,L]

    (二)windows主机
     windows主机的IIS服务器,首先需要安装ISAP_Rewrite这个组件,你可以询问下主机商是否支持这个组件,如果支持的话将域名都解析好,然后对于windows主机我们需要建的是httpd.ini文件而不是.htaccess文件,这个地方需要注意一下,然后在httpd.ini文件中添加如下规则:
    RewriteCond Host: ^ yourdomain\.com$
    RewriteRule (.*) http\://www\.yourdomain\.com$1 [I,RP]
    RewriteCond Host: ^seo\.yourdomain\.com$
    RewriteRule (.*) http\://www\.yourdomain\.com$1 [I,RP]

   上面的规则表示的是将域名301跳转到带www这个域名。同样如果你的网站根目录下存在httpd.ini文件,你可以直接将以上规则加入进去,如果网站根目录下不存在该文件,你可以先新建个httpd.txt空文件,然后添加如下规则,保存文件用FTP上传到网站根目录后,将httpd.txt名修改为httpd.ini即可,规则如下:
    [ISAPI_Rewrite]
    # 3600 = 1 hour
    CacheClockRate 3600
    RepeatLimit 32
    RewriteCond Host: ^ yourdomain\.com$
    RewriteRule (.*) http\://www\.yourdomain\.com$1 [I,RP]
    RewriteCond Host: ^seo\.yourdomain\.com$
    RewriteRule (.*) http\://www\.yourdomain\.com$1 [I,RP]

    以上就是Linux及Windows系统301重定向方法,有兴趣的朋友可以按照上述方法尝试设置下,当然对于不支持以上301跳转的主机,做不了301也没有关系, 也可以通过做好网址规范化、网站使用绝对化的地址等其他方法达到相同的效果,这样就可以让搜索引擎知道哪个是你的目标URL。

    需要注意的是,一般情况下我们也可以在主机控制面板中(如cPanel面板)设置而达到同样的效果,对于不清楚用配置文件设置301重定向,建议大家通过主机控制面板进行设置,另外就是需要将上述的yourdomain.com域名换成你自己的主域名,上述设置过程仅供大家参考,如果想了解更多的主机知识可以去美国主机侦探论坛和我们一起交流学习。