301重定向怎么批量设置?

301重定向怎么批量设置?,第1张

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

例如:

变更http://www.***.com/%year%/%monthnum%/%day%/%postname%/ 为 http://www.***.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.***.com/%id% 为 http://www.***.com/%postname%/%id%.html

重定向语句:

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

解释:

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

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

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

三、变更http://www.***.com/postname/lizi/ 为 http://www.***.com/postname/lizi.html

重定向语句:

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

四、变更http://www.***.com/lizi/ 为 http://www.***.com/archives/lizi.html

重定向语句:

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

五、变更http://www.***.com/lizi 为 http://www.***.com/lizi.html

重定向语句:

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

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

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

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

上面的代码在.htaccess文件中,也可以放在这个代码<IfModule mod_rewrite.c>.....</IfModule>之外,比如这样:

windows系统的.htaccess批量301规则

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>

linux系统的.htaccess批量301规则

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

# BEGIN WordPress 

RewriteEngine On  

RewriteBase /  

RewriteRule ^index\.php$ - [L]  

RewriteCond %{REQUEST_FILENAME} !-f  

RewriteCond %{REQUEST_FILENAME} !-d  

RewriteRule . /index.php [L]

第一种情况,如果你有服务器或者vps,且系统是windows系统的。

在iis下,可以很简单的设置实现全站重定向 。

具体方法是:在VPS里把www.xxxx.com 域名的网站搭建好以后,按照同样的方式搭建一个xxxx.com的网站。然后打开“iis”。在XXXX.com的网站上鼠标右键打开选择属性,选择“主目录”标签,然后按照这个图设置

第二种情况,如果你的系统是Linux的。

做整站301跳转,很简单。如下修改文件httpd.conf或者.htaccess文件保存就可以了:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^xxxx.com [NC]

RewriteRule ^(.*)$ http://www.xxxx.com/$1 [L,R=301]

第三种情况,如果你是虚拟主机用户,如果你有子目录,恭喜你,也可以整站301重定向。具体方法是:

1.新建404.asp,把下面代码放到新建的404文件中保存。

代码

<%@ Language=VBscript %>

<%

Dim PageURL

PageURL=“http://”&Request.ServerVariables("HTTP_HOST")&request.ServerVariables("URL") &"?"&Request.ServerVariables("QUERY_STRING")

PageURL = Replace(PageURL, “http://xxxx.com/404.asp?404"http://xxxx.com:80,"") //修改为你的老域名

Response.Status="301 Moved Permanently"

Response.AddHeader "Location", “http://www.xxxx.com”&PageURL&"" //修改为你的域名

%><%@ language="VBscript">

<%@ language="VBscript">

2.新建index.asp,把下面代码放到新建的ind文件中保存。

代码

<%@ Language=VBscript %>

<%

Response.Status="301 Moved Permanently"

Response.AddHeader "Location","http://www.xxxx.com/"//修改为你的域名。

%><%

Response.Status="301 Moved Permanently"

Response.AddHeader "Location", "http://www.xxxx.com/"//修改为你的域名。

%>

3.用ftp在网站根目录新建文件夹名为301,把上面的index.asp和404.asp上传进去。然后打开虚拟主机控制面板,添加子目录,把域名xxxx.com绑定到301文件夹 ,绑定后设置所属404页面为404.asp。

第四种情况,如果你是虚拟主机用户且你没有子目录,缺银子呗,呵呵,也是可以整站301的,具体方法是:

在网站根目录http.ini文件中,添加如下代码:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteCond Host:^xxxx\.com$

RewriteRule (.*) http\://www\.xxxx\.com$1 [I,RP)


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/557183.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-30
下一篇2023-06-30

发表评论

登录后才能评论

评论列表(0条)

    保存