包含相同名称的正则表达式文件夹重定向(创建循环)

Regex folder redirection containing same name (creating loop)

我正在尝试创建一个正则表达式来重定向文件夹及其内容,但我创建了一个重定向循环,因为新文件夹以同一个词开头。 我实际上把它放在 'Redirection' Wordpress 插件中,但希望应该与 mod_rewrite RewriteRule 语句相同。

意向:

FROM:   /photo  OR      /photo/   OR    /photo/anything/    
TO:     /photo-video    /photo-video/   /photo-video/anything/

使用:

/photo(.*) /photo-video     -> creates a redirect loop (keeps adding '-video')
/photo/(.*) /photo-video/   -> misses out the case without trailing /

我觉得在 /photo 之后我需要创建一个条件:[ '/' followed by (.*) ] OR [ nothing ](即,如果 / 之前的其他字符将不匹配)。

在正则表达式中执行此操作的正确方法:

发件人: ^/photo(/.*|$)
收件人: /photo-video

/photo           -> /photo-video
/photo/          -> /photo-video/
/photo/anything  -> /photo-video/anything
/photo/anything/ -> /photo-video/anything/

为您分解:

^/photo(/.*|$)

  • 字符串的开头 ^
  • 其次是/photo
  • 之后是 / 和其他;即 /.*
    • 或者,后跟字符串结尾(无)$