0%

Linux系统下301重定向的使用方法

关于301重定向的百科
页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地址。或者网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这些情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失。又比如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。
301重定向的必要性

1.对于旧域名和新域名而言,使用301重定向可以让旧外链不失效,最大限度的减少网站流量损失。

2.对于SEO,搜索引擎蜘蛛也会抓取新域名的信息。根据卢松松博客的介绍,百度在处理301重定向网站时,会首先给予跳转到的页面一个更高的权重,此时旧页面并不会被删除。但是随着时间推移,旧页面会因为质量下降而最终被清除出搜索引擎的数据库。也就是说一定时间之后,搜索引擎上将只剩下新域名的页面。

3.关于顶级域名和二级域名。大多数人不知道 www.baidu.com 其实是二级域名,baidu.com 才是顶级域名。对于搜索引擎而言,这是两个网站。所以这样会导致权重的分流,对SEO非常不利。而用户访问 baidu.com 与访问 www.baidu.com 也是不同的,在站点统计数据上也不好管理和查看。
Apache在linux系统上开启301重定向的方法:

1.我们需要到Apache设置文件开启Mode Rewrite。默认设置文件路径在 /etc/httpd/conf/httpd.conf 。我们打开它。找到如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<Directory "/web">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

在 AllowOverride None 这一行,将其改为 AllowOverride All 即可。然后保存文件,上传至服务器。

之后我们需要写一个 .htaccess 文件来设定重定向规则。首先在网站根目录下创建这个文件。然后我们写入如下内容

1
2
3
4
5
6
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^baidu.com$ [OR]
RewriteCond %{HTTP_HOST} ^m.baidu.com$ [OR]
RewriteCond %{HTTP_HOST} ^192.168.1.1$
RewriteRule ^(.*)$ http://www.baidu.com/$1 [R=301,L]

以上规则可以重定向 baidu.com 和m.baidu.com至 www.baidu.com

具体的语法可以自己查一下,这里不再赘述。这个规则不只能做301重定向,还可以做到很多强大的功能,想要深层次装逼的童鞋可以去谷歌一下→_→

之后使用如下命令来重启Apache
service httpd restart

参考自: Linux系统下301重定向的使用方法