如何将WordPress多余的首页分页页重定向到404或首页?
解决无意义分页页面的重定向/404处理问题
场景说明
你的站点中domain.com/page/1/已正常重定向到首页,但/page/2/、/page/3/等带更大数字的分页页面既不重定向也不返回404,而是显示首页副本,且未使用分页插件。以下是几种可行的解决方式:
方法1:Apache服务器(.htaccess)
如果你的服务器基于Apache,在网站根目录的.htaccess文件中添加对应规则:
重定向到首页(301永久重定向)
RewriteEngine On # 匹配/page/2/及以上的分页URL,重定向到站点首页 RewriteRule ^page/([2-9]|[1-9][0-9]+)/$ / [R=301,L]
直接返回404错误
RewriteEngine On # 匹配/page/2/及以上的分页URL,返回404状态码 RewriteRule ^page/([2-9]|[1-9][0-9]+)/$ - [R=404,L]
方法2:WordPress站点(functions.php)
若使用WordPress,可在当前激活主题的functions.php文件中添加代码:
重定向到首页
add_action('template_redirect', 'handle_unwanted_pagination_redirect'); function handle_unwanted_pagination_redirect() { // 检测是否为分页页面且页码≥2 if (is_paged() && get_query_var('paged') >= 2) { wp_redirect(home_url(), 301); exit; } }
返回404错误
add_action('template_redirect', 'handle_unwanted_pagination_404'); function handle_unwanted_pagination_404() { // 检测是否为分页页面且页码≥2 if (is_paged() && get_query_var('paged') >= 2) { global $wp_query; $wp_query->set_404(); status_header(404); get_template_part('404'); exit; } }
方法3:Nginx服务器配置
如果服务器使用Nginx,在站点的配置文件中添加规则:
重定向到首页
# 匹配/page/2/及以上的分页URL,重定向到首页 location ~ ^/page/([2-9]|[1-9][0-9]+)/$ { return 301 $scheme://$host/; }
直接返回404错误
# 匹配/page/2/及以上的分页URL,返回404状态码 location ~ ^/page/([2-9]|[1-9][0-9]+)/$ { return 404; }
修改配置后需重启Nginx服务生效。
注意事项
- 301重定向适合需要保留流量并让搜索引擎更新索引的场景;404则直接告知搜索引擎该页面无效,适合彻底清理无意义页面。
- 修改配置文件前,请务必备份原文件,避免操作失误导致站点异常。
内容的提问来源于stack exchange,提问作者duane_1804
相关产品推荐
相关产品推荐

