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

     (一)linux主机

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

     如果你的网站根目录中已经存在了.htaccess文件,那么你可以直接修改该文件,然后将这条规则添加进去,如果你的网站根目录中不存在.htaccess文件,你可以先自己创建个htaccess.txt这样的空文件,然后添加如下规则,建成后将htaccess.txt文件上传到网站根目录,然后将htaccess.txt名修改为.htaccess,规则为:

     RewriteEngine on
     RewriteCond %{http_host} ^ yourdomain.com [NC]
     RewriteRule ^(.*)$ . 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域名换成你自己的主域名,上述设置过程仅供大家参考,如果想了解更多的主机知识可以去和我们一起交流学习。