为什么匹配[2]在重写规则中不返回任何内容


Why matches[2] does not return anything in rewrite rule

我正在尝试将网址 www.domain.com/some/my-page--woohoo.html 重定向到 www.domain.com/index.php?pagename=my-page

我有这个规则,它通过 add_action('init', 'create_rewrite_rule', 1, 0);

add_rewrite_rule('^.*'/(.*)--woohoo'.html$', 'index.php?pagename=$matches[1]', 'top');

调用 www.domain.com/some/my-page--woohoo.html 返回 404,但何时将规则更改为

add_rewrite_rule('^.*'/(.*)--woohoo'.html$', 'index.php?pagename=my-page', 'top');

一切正常。

似乎$matches[1] 什么也没返回 :-(为什么?

感谢您的任何帮助!

如果有人会处理这个问题,我还没有找到真正的解决方案(我尝试了很多东西几个小时),所以我不得不通过常规的 htaccess 重定向来处理它,即使它不是最佳的(就我而言)。

如果您找到解决方案,请在此处写下,否则我认为它是WP中的错误。