美文网首页
通过修改.htaccess批量实现网站内页301重定向跳转

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

作者: 共鸣世纪 | 来源:发表于2019-08-23 15:04 被阅读0次

本文主要介绍如何通过正则表达式实现批量内页跳转。

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

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

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

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

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

例如:

http://www.xiaomseo.com/2016/12/24/seo/ 重定向为http://www.xiaomseo.com/seo.html

说明:

http://www.xiaomseo.com/%year%/%monthnum%/%day%/%postname%/

http://www.xiaomseo.com/%postname%.html

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

重定向语句:

RedirectMatch301^/([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就行了。

二、字符形式类链接跳转

1、例如:http://www.xiaomseo.com/123 重定向为http://www.xiaomseo.com/seo/123.html

说明:

http://www.xiaomseo.com/%id%

http://www.xiaomseo.com/%postname%/%id%.html

重定向语句:

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

解释:

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

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

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

2、

http://www.xiaomseo.com/postname/lizi/ 重定向为 http://www.xiaomseo.com/postname/lizi.html

重定向语句:

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

3、http://www.xiaomseo.com/lizi/ 重定向为http://www.xiaomseo.com/archives/lizi.html

重定向语句:

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

4、http://www.xiaomseo.com/lizi重定向为 http://www.xiaomseo.com/lizi.html

重定向语句:

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

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

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

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

三、代码放置位置

上面的代码可以放在这段代码<IfModule mod_rewrite.c>.....</IfModule>中间或者之外,比如这样:

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

# BEGIN WordPress  

<IfModule mod_rewrite.c>  

RewriteEngine On  

RewriteBase /  

RewriteRule ^index\.php$ - [L]  

RewriteCond %{REQUEST_FILENAME} !-f  

RewriteCond %{REQUEST_FILENAME} !-d  

RewriteRule . /index.php [L]  

</IfModule>  

相关文章

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

    本文主要介绍如何通过正则表达式实现批量内页跳转。 在写之前我们先来认识几个简单的符号所代表的含义 1、(.+) 代...

  • 页面重定向

    本域名内实现目录重定向 利用php文件中的header 跳转到指定页面 使用.Htaccess文件实现301重定向...

  • 301重定向到https 并且不带www跳转到带www

    Apache环境下,.htaccess 伪静态让http 301重定向到https, 并且不带www跳转到带www...

  • 详解301重定向及实现方法

    一、什么是301重定向 301重定向(或叫301跳转、301转向)是用户或搜索引擎蜘蛛向网站服务器发出访问请求时,...

  • .htaccess 301跳转

    强制301到https

  • wordpress支持https

    1,从阿里云申请免费证书 2,配置.htaccess文件,使http网站301重定向到HTTPS,用这两种方式都没...

  • Nginx下配置301/302

    Nginx 301永久重定向301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值. 前提是...

  • SEO干货:URL标准化和301转向

    一,什么是301转向 301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务...

  • 网页重定向

    下面介绍几种网页重定向的方式。 301重定向 301 重定向也被称为 永久性 重定向,一个网站如果做了 301 重...

  • Bluehost网站做301跳转的方法

    301跳转可以提高用户体验,保留流量和页面的权重,一般情况下,WP网站需要安装插件或在.htaccess文件中写代...

网友评论

      本文标题:通过修改.htaccess批量实现网站内页301重定向跳转

      本文链接:https://www.haomeiwen.com/subject/wlhtectx.html