Apache环境下如何利用.htaccess批量实现301跳转

原创 2019-03-16 10:45 阅读 304 次

网站链接改版或出现死链有时候是不可避免的,网站栏目页或者文章内页因为某些原因调整了路径,如果想保留之前的链接就需要做301跳转。网站首页的301重定向容易做,内页的301跳转就相对复杂一点,不过在apache环境下,我们可以通过修改.htaccess这个文件轻松完成这项工作。

htaccess文件是apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,我们可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。今天小编就介绍一下如何利用htaccess文件实现批量301跳转。

在写之前我们先来认识几个简单的正则表达式符号所代表的含义

正则表达式,又称规则表达式,正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本

1、(.+) 代表任意字符(包括汉字、英文字母等)

2、(\d+)代表是任意数字(仅仅是阿拉伯数字)

3、([0-9]+)代表的0到9的任意数字组合,通常用在匹配年月日

4、$1、 $2 、$3 、$4表示的是对前面出现的变量的引用(你理解这个意思就行了)

一、简单的数字形式链接跳转

例如:

变更http://www.example.com/%year%/%monthnum%/%day%/%postname%/ 为 http://www.example.com/%postname%.html

/%year%/%monthnum%/%day%这个路径表示的意思是“年、月、日”3层路径,%postname%是名称。现在需要去掉“年、月、日”这几个多余的层级,变成http://www.***.com/%postname%.html这种形式。

重定向语句:

RedirectMatch 301 ^/([0-9]+)/([0-9]+)/([0-9]+)/(.*)/$ /$4.html

解释:

RedirectMatch 301 ^可以认为是规则的开始;

中间的三个([0-9]+)分别代表数字“%year%、%monthnum%、%day%”;

(.*)代表最后文章的名称或者ID即“%postname%”;

这四个变量可以赋予编号$1、 $2 、$3 、$4,(.*)和$4.html中间的$可以理解为新老网址的连接符号(注意:$ /$4.html这个符号$和后面的/之间有空格)。

我们要做的就是前面的日期都不要,只留最后的文章名,然后在结尾后面加上.html,所以修改后前面的三个([0-9]+)都不要,只保留最后的(.*),通过下图我们知道(.*)代表$4,所以后面的规则只需写上$4.html就行了。

二、字符形式类链接跳转

例如:

变更http://www.example.com/%id% 为 http://www.example.com/%postname%/%id%.html

重定向语句:

RedirectMatch 301 ^/(\d+)$ /(.*)/$1.html

解释:

前面我们说过(\d+)代表是任意数字,所以前面的数字变量“%id%”可以写成(\d+);

“%postname%”是名称肯定是字符,而任意字符(包括汉字、英文字母等)对应的表示符号是(.*);

其中数字变量“%id%”即(\d+)对应的编号是$1,我们需要做的是在旧的文章链接的数字ID前面加一个分类名称,所以前面变量的表示方式为/(\d+),后面的可以写成/(.*)/$1.html,再在它们之间加一个链接符号$就行了。

三、原先没有html的网站跳转到有html的地址

例如:

变更http://www.example.com/postname/lizi/ 为 http://www.example.com/postname/lizi.html

重定向语句:

RedirectMatch 301 ^/(.*)/(.*)/$ /$1/$2.html

四、在原网址跳转到带.html并增加一个目录

例如:

变更http://www.example.com/lizi/ 为 http://www.example.com/archives/lizi.html

重定向语句:

RedirectMatch 301 ^/(.*)/$ /archives/$1.html

五、网址增加.html(没有“/”的情况)

例如:

变更http://www.example.com/lizi 为 http://www.example.com/lizi.html

重定向语句:

RedirectMatch 301 ^/(\d+)$ /$1.html

文章内容来源于网络,来源地址不详,站长根据自己的理解做出了一些修改,希望对大家有所帮助。

本文地址: //www.bao1s.com/2051.html
版权声明:本文为原创文章,版权归 脚丫网站圈所有,欢迎分享本文,转载请保留出处!
免责声明:本站文章仅供参考,本站不对其真实性做任何保证,如因轻信文章观点,导致受到任何损失,后果自负!

发表评论