英文店希望使用 red-shirt,德文店希望使用 rotes-hemd。后台字段看似保存成功,前台却仍跳到默认 URL。
先看属性作用域与保存范围
切到目标 Store View,取消“使用默认值”后再保存 URL Key。若导入脚本总在 default scope 写入,它会覆盖不到店铺级值;反过来,错误的 store_id 也会产生看似存在却永远不被当前店铺读取的数据。
SELECT store_id, request_path, target_path, redirect_type
FROM url_rewrite
WHERE entity_type='product' AND entity_id=:product_id
ORDER BY store_id, request_path;最终 URL 还受到商品 URL 后缀、是否包含分类路径、历史重定向和同店铺唯一性限制。不要只查 EAV 属性值。
验收矩阵
- 直接访问两个语言的新 URL 都返回 200;
- 旧 URL 只做一次预期 301;
- 切换语言不会落回默认 Store;
- canonical 指向当前语言的规范地址。
若批量改大量 URL Key,应先用少量 SKU 生成重写并检查冲突,再扩大范围。

