我最近将所有Wordpress博客网址都更改为不包括年,月和日期。
我不想创建单独的重定向规则,而是想使用RegEx创建一个通配符规则。
从http://www.example.com/blog/2015/01/01/blog-title/
到http://www.example.com/blog/blog-title/
等网址。
我需要能够识别出/ blog /之后输入的数字,因为它不会干扰我的其他网址。
所以我尝试在我的重定向插件中输入此规则:
来源网址:/blog/^[0-9]*$/^[0-9]*$/^[0-9]*$/(.*)
目标网址:/blog/$1/
但这似乎根本没有重定向,所以源不被识别。我应该使用什么规则来查找/ blog / yyyy / mm / dd格式之后的任何数字?
答案 0 :(得分:0)
您必须转义/
,$
与字符串末尾匹配。所以你需要像
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
答案 1 :(得分:0)
您可以在RewriteEngine On
行:
RewriteCond ^/blog/\d{4}/\d{2}/\d{2}/(.*)$ [NC]
RewriteRule ^ /blog/%1 [L,NE,R=301]