我最近更改了我所有的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/之后的任何数字?
发布于 2016-08-05 23:46:25
您必须转义/,并且$从字符串的末尾开始匹配。所以你需要像这样的东西
blog\/\d{4}\/\d{2}\/\d{2}\/(.*)这应该进行替换(由regex101生成):
$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);输出:
http://www.example.com/blog/blog-title发布于 2016-08-06 00:18:11
您可以在RewriteEngine On行下面使用此重定向规则:
RewriteCond ^/blog/\d{4}/\d{2}/\d{2}/(.*)$ [NC]
RewriteRule ^ /blog/%1 [L,NE,R=301]https://stackoverflow.com/questions/38793093
复制相似问题