首页 > 解决方案 > 带有 URL 参数的 htaccess 重定向

问题描述

我正在尝试将我的所有产品从我的旧 zen-cart 商店重定向到我的新 shopify 商店。

RewriteCond %{QUERY_STRING} products_id=1408
RewriteRule ^ https://shop.xyz.com/collections/products/mno? [L,R=301]

RewriteCond %{QUERY_STRING} ^products_id=1282 [NC]
RewriteRule ^ https://shop.xyz.com/collections/products/abc? [L,R=301]

RewriteCond %{QUERY_STRING} ^products_id=12 [NC]
RewriteRule ^ https://shop.xyz.com/collections/products/xyz? [L,R=301]

但是,我不明白为什么 products_id 12 和 1282 都重定向到https://shop.xyz.com/collections/products/xyz?

标签: .htaccessredirectmod-rewrite

解决方案


你行

RewriteCond %{QUERY_STRING} products_id=12 [NC]

包含表达式:products_id=12它确实匹配 12 和 1282。

如果它是单个参数,您可以通过添加字符串标记的结尾来修复它$products_id=12$

&否则products_id 编号后面会有一个分隔符。

https://example.com/shop/?products_id=12&cat_id=1

您可以将其与:

products_id=12&


另一个可能有效的非正统但快速而肮脏的解决方案是对数字进行排序,较高的数字将在达到较低的数字规则之前正确匹配。


推荐阅读