我正在尝试重写我的网址以执行以下操作:
如果网址的最后一段以“p”开头,后跟一个数字,则该P应为大写。
所以:domain.com/path/to/something/p112
应该变为domain.com/path/to/something/P112
,但domain.com/p123/something/else
不应成为domain.com/P123/something/else
我知道如何简单地替换字符,但我不知道如何将其限制为最后一段,并且只有在匹配某种模式时才适用:
RewriteRule ^(.*)p(.*)$ /$1P$2 [L,R=301]
答案 0 :(得分:1)
您可以使用此规则:
RewriteRule ^(.+)/p(\d+/?)$ /$1/P$2 [L,R=301,NE]
.+
贪婪,因此在匹配上一个/
之前匹配最长匹配。\d+
将匹配1位或更多位数。