Hi,
有钱终成眷属
没钱亲眼目睹

WordPress固定链接301重定向说明及方法

本文最后更新于2021年4月1日,已超过 3 年没有更新,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

今天的文章标题为Wordpress的301跳转简述及方法,为什么要写这个呢。原因很简单,因为我前几天对博客的部分文章地址进行了301跳转。可能又会有人问,我为什么要进行301跳转呢?原因也很简单,因为我对文章的固定链接进行了修改,修改之前的文章百度已经收录,给百度提交之前的文章地址为死链,又删不掉,没办法,才进行了301跳转。

可能有的人不明白何为301跳转,301重定向(301 redirect),也叫301跳转,是指网址的永久性转移(Permanently Moved),当网站在搜索引擎索引库中的网址发生改变时,搜索引擎并不能及时改变索引库中的网址。网站管理员通过对网址的301重定向转移,可以避免损失来自搜索引擎的用户。更重要的是,通过301重定向转换,URL的权重、Google PR值都能够不受影响地传递。因此301重定向也是网页更改地址后对搜索引擎非常友好的一种方法。

例如,我之前文章发表的地址为:https://www.chyiyang.cn/2018/2.html,现在我的文章发表地位改为了https://www.chyiyang.cn/2.html,百度已收录了旧地址,但旧文章已变成了新地址,如果这个时候你去访问原文章地址,浏览器会返回404错误。这个时候为了避免404错误,就要启用301重定向。

要实现301重定向,主要有两种方法。一是使用插件。另一种是利用.htaccess实现URL重定向(redirect)。有人可能要问我,我用的哪一种?我在这可以告诉大家,我用的是插件实现,至于为啥用插件,我后面会说明原因。

一、使用插件实现301重定向

插件主要有两种,WP Permalinks Migration或Redirection。我用的是前者,因为前者配置界面为中文,后者界面为英文。
1、下载并安装插件WP Permalinks Migration。
2、启用插件以后,进入WordPress后台的Settings(设置)–>WP Permalinks Migration,可以看到一般会自动识别原来的链接样式,如果没有自动识别原来的链接样式,那就你手动填写,并按左下角的按钮保存设置。
3、在WordPress后台的Settings(设置)–>Permalinks(永久链接)–>修改为你想要的样式,保存即可,这时候,访问原来的链接,就可以自动跳转到你的新链接!

二、利用.htaccess实现URL重定向(redirect)

.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。
要利用.htaccess文件进行重定向,就需了解表达式的规则,具体规则含义如下:

^ –> 匹配字符串的开始
$ –> 匹配字符串的结束
^$ –> 可以用于确定字符串,即可以用于确定起点或终点。例如:^$ —— 空字符串
s –> 匹配任意的空白符
w –> 匹配字母或数字或下划线或汉字
b –> 是正则表达式规定的一个特殊代码代表着单词的开头或结尾,也就是单词的分界处
d –> 匹配一位数字
W (大写) –> 匹配任意不是字母,数字,下划线,汉字的字符
S (大写) –> 匹配任意不是空白符的字符
D (大写) –> 匹配任意非数字的字符
B (大写) –> 匹配不是单词开头或结束的位置
“ . ” –> 匹配除了换行符以外的任意字符
“ * ” –> 它代表的不是字符,也不是位置,而是数量——它指定 * 前边的内容可以连续重复使用任意次以使整个表达式得到匹配。“ * ”连在一起就意味着任意数量的不包含换行的字符
“ + ” –> 是和“ * ”类似的元字符,不同的是 * 匹配重复任意次(可能是0次),而 + 则匹配重复1次或更多次。
“ ? ” –> 重复零次或一次
“ – ” –> 不是元字符,只匹配它本身,即连字符(减号)

示例一:原固定链接/personal/article/%year%/%postname%.htm改为/%postname%.html
其中,/personal/article/不变,%year%/为数字,为([0-9]+);%postname%.htm为字符,为(.*),可以理解为最后的文章名称或者ID。给/%year%/赋予$1,%postname%.htm赋予$2,(.*)和$2l(是字幕l,不是数字1)之间的那个$可以理解为老网址和新网址之间的分割。
重定向语句:

RedirectMatch 301 ^/personal/article/([0-9]+)/(.*)$ /$2l

示例二:原固定链接/%year%/%monthnum%/%day%/%postname%/改为/%postname%.html
其中,%year%,%monthnum%,%day%均表示数字,所以都为([0-9]+),%postname%为字符,为(.*)。这4个变量分别赋予$1,$2,$3,$4。
重定向语句:

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

示例三:/%post_id%修改为/%category%/%post_id%.html
其中,%post_id%肯定是数字,而上面说过,正则表达式中(d+)对应任意数字,所以以前的网址可以写成/(d+),而%category%是分类,肯定是字符,不管是汉字还是字母,正则表达式中(.+) 对应的是任意字符(包括汉字、英文字母等),所以新的网址可以写成/(.+)/(d+).html
重定向语句:

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

到此,两种方法就介绍完了。

现在,我就说下我为什么要用插件进行301重定向,因为用插件的话,在访问旧地址时,当网页打开时,浏览器上的网址会替换成新地址。而用htaccess进行重定向时,浏览器上的地址还是旧的网页地址。
WP Permalinks Migration插件下载地址:

本文部分参考:https://qiaodahai.com/wordpress-modify-permalinks-301-redirect.html,再次表示感谢!!

赞(0)
未经允许不得转载:伊阳博客 » WordPress固定链接301重定向说明及方法

留言 抢沙发