.htaccess 301 重定向与 rewriterule 冲突

.htaccess 301 redirect conflicting with rewriterule

我正在尝试重定向 URL 但它与重写规则冲突,我正在使用此重定向规则

Redirect 301 /antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs    

它把我带到了这里 link https://example.com/antique-vintage-rugs/170-antique-rugs?action=clear&template=170-antique-oriental-rugs-carpets 而不是这个 https://example.com/antique-vintage-rugs/170-antique-rugs

我的重写URL是这个

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^antique-vintage-rugs/(.+) results.php?action=clear&template= [NC]

有什么方法可以获得所需的输出重定向 link?

您只需要在此处使用 mod_rewrite 而不是将其与 mod_alias (Redirect 指令所属的位置)混合使用。当您将两者混合使用时,两者最终都会处理相同的请求。

所以不要使用 Redirect,而是使用:

RewriteRule ^antique-vintage-rugs/170-antique-oriental-rugs-carpets https://example.com/antique-vintage-rugs/170-antique-rugs [L,R=301]

但请确保它您的其他规则之前。

我遇到了类似的问题。我试图从 cpanel 添加重定向,而我的 .htaccess 文件中已经写了一些重写规则。我得到的错误是 "No maching tag for " 我最终做的是保留我现有规则的副本并清理 .htaccess。然后去从 cpanel 添加我需要的所有重定向,然后最后在文件末尾放回我自己的重写规则。这对我有用