WooCommerce如何将前缀为/product/的单品页重定向至商店页
WooCommerce /product/前缀单品页重定向到商店页操作指南
需求说明
将所有URL路径以/product/为前缀的单品页面301重定向到站点商店页,保留不带/product/前缀的单品页面正常访问,避免路径重复导致的SEO问题。
符合以下格式的URL都会触发重定向:
domain.com/product/category/product-namedomain.com/product/product-name
重定向目标地址为:domain.com/shop
方案1:添加代码到主题函数文件(最推荐,兼容性最好)
将以下代码插入到当前使用主题/子主题的functions.php文件末尾,也可以通过「代码片段」类插件直接添加:
add_action('template_redirect', 'redirect_product_prefix_url_to_shop'); function redirect_product_prefix_url_to_shop() { // 仅对单品页面生效 if (is_product()) { global $wp; // 判断当前请求路径是否以product/开头 if (strpos($wp->request, 'product/') === 0) { // 301永久重定向到商店页,测试阶段可改为302临时重定向 wp_redirect(get_permalink(wc_get_page_id('shop')), 301); exit(); } } }
代码优势
- 仅针对单品页面生效,不会误重定向其他包含
/product/路径的非单品页面 - 不会影响不带
/product/前缀的正常单品页面访问 - 不需要修改服务器配置,主题更新前做好备份即可长期生效
方案2:服务器配置重定向(适合有服务器管理权限的用户)
Nginx服务器配置
在站点Nginx配置文件中添加以下规则,添加后重启Nginx服务生效:
rewrite ^/product/(.*)$ /shop permanent;
Apache服务器配置
在站点根目录的.htaccess文件顶部添加以下规则:
RedirectMatch 301 ^/product/(.*)$ /shop
注意事项
- 服务器规则优先级更高,配置前请先确认你站点的其他路径不会匹配
^/product/(.*)$规则 - 配置后建议清空浏览器缓存测试重定向效果
内容的提问来源于stack exchange,提问作者Duc Phuli
相关产品推荐
相关产品推荐

