如何在匹配正则表达式时创建 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]
我想在 .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]