建过网站的朋友都知道,每个网站都是需要通过至少一个域名(通过是顶级域名)来访问的。网上很多文章都有介绍到一个问题,那就是关于带www域名和不带www域名的权重问题,若不做301重定向,可能会造成权重分散,从而使网站竞争力下降。且不讨论这个观点的正确性,就技术角度而言,如何将不带www的域名做301重定向到带www的域名上呢?有以下几个解决方案。
方案一:通过伪静态组件实现301重定向
常见的伪静态组件有好几种,比如Linux Apache下的.htaccess,Windows系统下的httpd.ini或web.config。不论哪一种,都可以实现301重定向。以.htaccess为例,这是一个文件,这个文件一般存放于网站的根目录。一旦访问这个网站,服务器就会先执行这个.htacccess文件,这个文件里可以写各种伪静态的代码,而301重定向就是其中之一。以下是.htaccess的301重定向写法:
RewriteCond %{http_host} ^yiqnet.com$ [NC]
RewriteRule ^(.*)$ http://www.yiqnet.com$1 [R=301,L]
简简单单2行代码就能解决问题,第1行代码是不带www的域名,第2行是带www的域名。上面代码中的意思是将yiqnet.com永久重定向到www.yiqnet.com。其效果就是当访问yiqnet.com时会直接跳转到www.yiqnet.com。
方案二:通过虚拟主机配置实现301重定向
现在很多虚拟主机都可以在控制面板里设置301重定向(并非所有虚拟主机产品都支持),如果你的正好支持,那么设置就更加简单了。以阿里云虚拟主机为例,通过下面的步骤就可以轻松设置301重定向了。
301重定向不仅适用于顶级域名,也适用于网站中的子页面,它的作用非常大,比如在网站改版升级时,使用301永久重定向将旧的页面过渡到新页面,可以大大减少因改版造成的权重流失。