WordPress产品分类旧永久链接仍生效,如何设置使其返回404错误?
解决WordPress旧分类永久链接仍可访问的问题
通过.htaccess规则拦截旧链接
在.htaccess文件的# BEGIN WordPress代码块之前,添加以下规则,直接让旧格式的链接返回404:# 拦截不含/furniture/前缀的旧分类链接 RewriteRule ^c/([^/]+)/([^/]+)/$ - [R=404,L] # 若存在更深层级的旧链接,可补充规则: # RewriteRule ^c/([^/]+)/([^/]+)/([^/]+)/$ - [R=404,L]添加后保存文件,刷新网站缓存即可生效。
用WordPress钩子强制验证链接格式
在主题的functions.php文件中插入以下代码,检查当前访问的分类链接是否符合新格式,不符合则返回404页面:add_action('template_redirect', function() { global $wp; $current_path = $wp->request; // 匹配旧链接路径:以c/开头但不包含c/furniture/ if (str_starts_with($current_path, 'c/') && !str_contains($current_path, 'c/furniture/')) { if (is_product_category()) { // 针对WooCommerce产品分类 status_header(404); include(get_query_template('404')); exit; } } });清除分类的历史别名
进入后台的产品分类编辑页面,查看「别名」设置项,若存在旧的slug记录(比如living-room-furniture),删除这些旧别名,仅保留新格式对应的完整slug。禁用WordPress自动重定向功能
WordPress默认会自动解析并重定向相似的旧链接,可通过以下代码禁用该功能:remove_action('template_redirect', 'wp_old_slug_redirect');将代码添加到主题
functions.php或自定义插件中即可。
内容的提问来源于stack exchange,提问作者Salman Farid
相关产品推荐
相关产品推荐

