.htaccess - 带有 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?
解决方案
你行
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&
另一个可能有效的非正统但快速而肮脏的解决方案是对数字进行排序,较高的数字将在达到较低的数字规则之前正确匹配。
推荐阅读
- objective-c - 如何通过编程专门创建模态表窗口
- mysql - Mysql LEFT JOIN 两次在不同的子表上使用相同的父主键
- r - 从彭博获取投资组合回报和归因
- rust - 压缩和解压缩 tar.gz 文件
- google-cloud-vision - 在 Google Vision API 中围绕文本构建边界框以提取文本
- api - 如何在 POST API 请求中添加当前日期时间?
- cmake - 如果工具链前缀后没有破折号,如何让 CMake 检测 ar 和 nm?
- google-cloud-dataflow - Beam/Dataflow:找不到会话文件:/var/opt/google/dataflow/pickled_main_session
- c# - 如果 Powershell 条件为真,如何将阶段标记为不稳定?
- mysql - Laravel 应用程序 - SQLSTATE[HY000] [2002] 连接被拒绝