修改.htaccess批量实现网站内页301重定向跳转方法

日期: 栏目:营销推广 浏览:

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

通过修改.htaccess实现网站内页301重定向跳转 htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。在LINUX主机FTP文件中都会有一个.htaccess配置文件用来设置伪静态规则,本文主要介绍如何通过正则表达式实现批量内页跳转。

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

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

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

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

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

例如:

seolxw/2016/12/24/seo/  重定向 为 http:seolxw/seo.html

说明:

http:seolxw/%year%/%monthnum%/%day%/%postname%/

http:seolxw/%postname%.html

/%year%/%monthnum%/%day%这个路径表示的意思是“年、月、日”3层路径,%postname%是名称。现在需要去掉“年、月、日”这几个多余的层级,变成http:seolxw/%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就行了。

通过修改.htaccess实现网站内页301重定向跳转

二、字符形式类链接跳转

1、例如:http:seolxw/123 重定向为 http:seolxw/seo/123.html

说明:

http:seolxw/%id%

http:seolxw/%postname%/%id%.html

重定向语句:

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

解释:

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

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

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

2、 http:seolxw/postname/lizi/ 重定向为 http:seolxw/postname/lizi.html

重定向语句:

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

3、http:seolxw/lizi/ 重定向为 http:seolxw/archives/lizi.html

重定向语句:

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

4、http:seolxw/lizi 重定向为 http:seolxw/lizi.html

重定向语句:

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

写重定向语句时应该注意哪些方面:

首先你要弄清楚自己原网址中需要改变的部分是什么形式,是数字还是字母,然后在重定向语句前面的部分用正则表达式对应的符号来表示,(.+) 代表任意字符(包括汉字、英文字母等),(d+)代表是任意数字(仅仅是阿拉伯数字),然后在语句后面分别用对应符号$1、 $2 、$3 、$4、$5..表示,最后用链接符号$,来链接新旧网址。

注意:连接符号$和后面的新网址之间有一个空格,而且,如果原网址最后有/的话,在$之前也必须有一个/。

三、代码放置位置

上面的代码可以放在这段代码.....中间或者之外,比如这样:

RedirectMatch 301 ^/(d+)$ /$1.html  
# BEGIN WdPressRewriteEngine On  
RewriteBase /  
RewriteRule ^index.php$ - [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]



标签:

热门标签
成都生活发布网 领会推广网 生活发布网 创美瘦身加盟费用 推广频道 知识频道 信息频道 资讯频道 产品频道 两性知识网 pc端是什么意思 zip code是什么意思 女王的圣水能喝吗 喝女王的圣水 小孩晚上喂姐姐吃鸡可以吗 黑色蕾丝女装 小鸟酱 探花七天长沙学院一字马 堕落校花自述经历 男生喜欢射口里应该吃掉么 怎么吃老婆的乳头 怎么吃女朋友的乳头最好 吃女子先吃哪个部位 吃女生先吃哪里 穿着泳衣吃撑大肚子 说一说被女生踩中要害的经历 192.168.233.1登录入口 中国动漫排行榜前十名 mate60pro有5g吗 1988年出生今年多大 三门峡市外国语高级中学 2美金是多少人民币 现在中国时间是几点? 现在几点几分 送你一朵小红花歌曲原唱 美国唯一一个三届总统 win10数字激活工具 广州上下九 小汽车摇号时间 上一任美国总统叫啥 步步惊心插曲 1刀 = 人民币 visualstudio官网 918资料 wpk透视挂是真的吗 阿卡丽得神秘商店 nba挑战规则是什么 高铁票价格为什么有高低 咖啡王子一号店结局 hhpoker德扑圈作弊器真的假的