如何在Shopify上设置从/collections/all到/collections/all/shop-all的301重定向?
实现Shopify /collections/all 到 /collections/all/shop-all 的301重定向
完全可以实现,以下是几种靠谱的方案,优先服务器端方案(对SEO更友好),搭配前端兜底和按钮修改,确保原路径彻底失效:
服务器端Liquid 301重定向(推荐)
Shopify支持通过主题的Liquid代码设置服务器端301头,步骤如下:
- 进入Shopify后台 → 在线商店 → 主题 → 操作 → 编辑代码
- 打开
theme.liquid文件,在<head>标签最顶部插入以下代码:
{% if request.path == '/collections/all' %} {% response.set_header 'Location', '/collections/all/shop-all' %} {% response.set_header 'Status', '301 Moved Permanently' %} <meta http-equiv="refresh" content="0; url=/collections/all/shop-all" /> {% endif %}
这段代码会在用户访问原路径时,直接返回301永久重定向的HTTP状态码,同时用meta标签做浏览器端兜底,确保跳转生效,搜索引擎也能正确识别重定向关系。
前端JS兜底方案(备用)
如果服务器端方案因主题限制无法生效,可以添加JS强制跳转:
在theme.liquid的</body>标签前插入:
if (window.location.pathname === '/collections/all') { window.location.replace('/collections/all/shop-all'); }
replace方法会直接替换浏览器历史记录,避免用户通过返回按钮回到原路径,更贴合301的跳转逻辑。
修改“Shop”按钮直接跳转目标页
找到按钮所在的模板文件(通常是header.liquid或sections/header.liquid),将按钮的跳转路径从/collections/all改为/collections/all/shop-all:
- 静态HTML按钮修改示例:
原代码:
<a href="/collections/all" class="shop-btn">Shop</a>
修改后:
<a href="/collections/all/shop-all" class="shop-btn">Shop</a>
- Liquid动态按钮修改示例:
原代码:
<a href="{{ routes.all_products_collection_url }}" class="shop-btn">Shop</a>
修改后:
<a href="/collections/all/shop-all" class="shop-btn">Shop</a>
验证效果
- 访问
你的店铺域名/collections/all,应自动跳转至目标页面,通过浏览器开发者工具的「网络」面板可查看301状态码(服务器端方案)。 - 点击“Shop”按钮,直接打开
/collections/all/shop-all。 - 确认原路径无法停留,始终触发跳转。
内容的提问来源于stack exchange,提问作者Tyler Tisdale
相关产品推荐
相关产品推荐

