首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RegEx重定向条件中只针对数字?

如何在RegEx重定向条件中只针对数字?
EN

Stack Overflow用户
提问于 2016-08-05 23:41:28
回答 2查看 73关注 0票数 0

我最近更改了我所有的Wordpress博客URL,不包括年、月和日期。

我希望使用RegEx只创建一个通配符规则,而不是创建单独的重定向规则。

因此,从http://www.example.com/blog/2015/01/01/blog-title/这样的URL到http://www.example.com/blog/blog-title/

我需要能够识别在/blog/之后输入的数字,以便它不会干扰我拥有的其他URL。

因此,我尝试在我的重定向插件中输入以下规则:

源URL:/blog/^[0-9]*$/^[0-9]*$/^[0-9]*$/(.*)目标URL:/blog/$1/

但这似乎根本没有重定向,所以来源没有被识别出来。我应该使用什么规则来查找yyyy/mm/dd格式中/blog/之后的任何数字?

EN

回答 2

Stack Overflow用户

发布于 2016-08-05 23:46:25

您必须转义/,并且$从字符串的末尾开始匹配。所以你需要像这样的东西

代码语言:javascript
复制
blog\/\d{4}\/\d{2}\/\d{2}\/(.*)

这应该进行替换(由regex101生成):

代码语言:javascript
复制
$re = "/blog\\/\\d{4}\\/\\d{2}\\/\\d{2}\\/(.*)/"; 
$str = "http://www.example.com/blog/2015/01/01/blog-title"; 
$subst = "blog/$1"; 

$result = preg_replace($re, $subst, $str, 1);

输出:

代码语言:javascript
复制
http://www.example.com/blog/blog-title
票数 0
EN

Stack Overflow用户

发布于 2016-08-06 00:18:11

您可以在RewriteEngine On行下面使用此重定向规则:

代码语言:javascript
复制
RewriteCond ^/blog/\d{4}/\d{2}/\d{2}/(.*)$ [NC]
RewriteRule ^ /blog/%1 [L,NE,R=301]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38793093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档