我需要在最后一个斜杠之后以数字字符结尾的任何url在数字前插入一个字符(_)。我已达到这一点,错误地只抓取最后一个斜杠前面的最后一组(非斜杠字符/),然后插入下划线和数字。 不工作:
^([^/]+/)+([0-9]+)$ $1_$2 [QSA,L,R=301]
所以我需要mysite.com/long/url/34566成为mysite.com/long/url/_34566 上面的代码使mysite.com/url/_34566
谢谢!
答案 0 :(得分:1)
您可以使用此规则:
RewriteRule ^(.+)/([0-9]+)$ /$1/_$2 [NE,L,R=301]
在您的正则表达式问题上,([^/]+/)+
仅在/
中捕获了$1
之前的最后一个捕获的组,因此url
的{1}}为/long/url/34566
。
在我的规则中,.+
将匹配上一个/
之前的任何内容,因此它将捕获/long/url
。