Magento 中的同一个产品详情页链接支持多种 URL 格式,例如:
- /some-sku.html
- /category-a/category-b/some-sku.html
但是我用 golang 重新实现的版本,只支持第一种格式。在需要从旧外贸站迁移到 golang 实现的站点时,就会丢失第二种链接格式的支持,导致 404 错误,破坏之前积累的搜索引擎收录的积累。
开始我感觉不太好支持,但是第二天早上在厕所嘘嘘时,突然想到了一个解决方案。。。
golang 中如果找不到 sku,则拆分出最后一部分,再查询一次,即可解决。即,即在查询不到时,取 / 分割的最后一部分,提取出 sku 再查询一次。为什么这么简单的解决方式,昨天晚上没有想到。看来睡眠也是思考过程。
SEO 效果
两种地址都能被访问,但对外只有一个规范地址;长地址 200 打开并声明 canonical 指向短地址,权重合并到短地址,无重复内容风险。而 Magento 的实现则是反的,canonical 指向长地址。