我正在尝试从我的网站获取一些旧链接,使用301重定向指令重定向到新链接。我需要完成的是删除字符串的第一部分,直到它与连字符匹配并删除它(包括连字符)
示例:
http://example.com/19731-la-preservacion-de-la-biodiversidad-es-crucial-para-frenar-la-desertificacion-en-zonas-aridas
或
http://example.com/633-afecta-la-crisis-alimentaria-ya-a-miles-de-personas
应输出到:
http://example.com/la-preservacion-de-la-biodiversidad-es-crucial-para-frenar-la-desertificacion-en-zonas-aridas
http://example.com/afecta-la-crisis-alimentaria-ya-a-miles-de-personas
到目前为止我已经尝试过了
RewriteRule ^[^-|-](.*)$ $1
和
RewriteRule ^([^-]*-)(.*)$ $1
但我似乎无法让它发挥作用。
谢谢!
答案 0 :(得分:1)
要在第一次出现某个字符(包括它)后获取子字符串,您可以使用negated character class来匹配该字符以外的任何字符,然后您需要启动一个捕获组,将char作为其中的第一个原子,并在以下后添加.*)
:
^[^-]*(-.*)$
此处,^[^-]*(-.*)$
匹配整个字符串,第一个-
与第一组中的所有字符匹配($1
中的RewriteRule
替换)。
请参阅regex demo
<强>详情
^
- 字符串开头[^-]*
- 除-
以外的零个或多个字符(否定字符类)(-.*)
- 第1组($1
):-
,然后是任意0+字符$
- 字符串结束。答案 1 :(得分:0)