如何在匹配正则表达式时创建 htaccess 重定向并传递变量?

How to create htaccess redirect and pass on variables while matching regex?

我想在 .htaccess 中为所有遵循特定 url 结构的链接创建重定向。但是,url 结构中有一个变量,因此我需要将变量传递到新的 url 中。变量可以是任何东西(字符串、数字、查询等),它只需要传递到新的 url 中。例如,/news-{VARIABLE}-2021 应该变成 /news-{VARIABLE}-2022.

按照 .htaccess 结构和正则表达式,我创建了这个,但是 $ 似乎没有传递给变量 </code>.</p> <pre><code>RewriteEngine On Rewrite 301 /news-(.*)$-2021 /news--2022

根据其他一些指南,我还尝试将 $ 放在 url 的末尾,或者在第一个 url 之前添加一个 ^(与并且没有斜杠 /)。然而,None 其中似乎有效。有人可以解释一下我如何使用中间的变量创建这些新链接吗?

您不能将 $(结束锚点)放在正则表达式模式的中间,也不要将 Rewrite 指令(mod_alias Apache 模块)与 RewriteEngine(mod_rewrite Apache 模块)。

您可以使用:

RewriteEngine On

RewriteRule ^(news-.+)-2021/?$ /-2022 [L,NC,NE,R=301]