.htaccess 使用GET值进行htaccess重定向

xzabzqsa  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(243)

我正在尝试从一个URL重定向到另一个。第一个URL包含GET值(/product/category/name/something-123/?a=1&b=2),应该省略。重定向后,我在新的URL(https://example.com/category/asdf.html/?a=1&b=2)中包含所有GET值-如何在重定向期间跳过所有GET值?
我的代码:

Redirect 301 /product/category/name/something-123 https://example.com/category/asdf.html
laawzig2

laawzig21#

要完全删除查询字符串,需要使用mod_rewrite(RewriteRule)而不是mod_alias(Redirect)。

RewriteEngine On
RewriteRule ^product/category/name/something-123/?$ https://example.com/category/asdf.html [QSD,R=301,L]

QSD标志丢弃原始查询字符串(需要Apache 2.4)。

  • 旁白:* 请注意,您在源URL上省略了尾部斜杠(在Redirect指令中),这就是为什么在请求带有尾部斜杠的URL时,重定向的URL上会出现额外的斜杠(如示例中所示)。Redirect指令是前缀匹配的,匹配后的所有内容都被复制到目标URL的末尾。

在上面的例子中,我已经在请求的URL上设置了可选的尾部斜杠。
请注意,在测试之前,您需要清除浏览器缓存。请先使用302s进行测试,以避免潜在的缓存问题。

相关问题