htaccess 301重定向插入一个字符

时间:2016-07-13 18:18:55

标签: .htaccess

我需要在最后一个斜杠之后以数字字符结尾的任何url在数字前插入一个字符(_)。我已达到这一点,错误地只抓取最后一个斜杠前面的最后一组(非斜杠字符/),然后插入下划线和数字。     不工作:

 ^([^/]+/)+([0-9]+)$ $1_$2 [QSA,L,R=301]

所以我需要mysite.com/long/url/34566成为mysite.com/long/url/_34566 上面的代码使mysite.com/url/_34566

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteRule ^(.+)/([0-9]+)$ /$1/_$2 [NE,L,R=301]

在您的正则表达式问题上,([^/]+/)+仅在/中捕获了$1之前的最后一个捕获的组,因此url的{​​1}}为/long/url/34566

在我的规则中,.+将匹配上一个/之前的任何内容,因此它将捕获/long/url