瞎BB

因这个域名之前做过一段时间的采集(从今日头条),所以,大概被收录了5W的数据,不想让流量白白走掉,而之前的文章无法打开了(404),所以,想给搞个404跳转到首页。

看1下

国内的搜索引擎对 404 页面的处理几乎都不及时,就像百度似乎不处理一样,那么当用户通过搜索引擎进入网站出现 404 页面其实是非常不友好的。

那么最简单的办法就是直接跳转到首页,记录一下能提供的几种关于 WordPress 404 页面的跳转。

以下所有方法的前提都需要是服务器能够直接将 404 交给程序处理,而不是中服务器直接判断 404 做跳转才有用,简而言之就是只有你的 WordPress 站点能够正常显示 WordPress 主题的 404 页面才能使用以下方法!

首先第一种(不推荐用)

直接利用 WordPress 的 wp_redirect 函数跳转,代码里面的状态码是可以修改的,可以是 302,但是不能为 404,否则会造成死循环,这样的方式我并不推荐,因为页面状态码会不会是 404,对 Google 等支持 404 状态码判断的处理不是特别友好。

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . get_bloginfo("url"));
exit();
?>

第二种方法可以选择性使用

能够返回正常的 404 状态,也就是程序访问这个页面是返回的 404 状态码,而实际用户看到的则是调用的网站首页模板,URL 不会做跳转,方法也不是特别好,不是特别推荐。

<?php
//直接载入首页 返回 404 状态
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include( get_query_template( 'index' ) );
die();
?>

第三种方法(推荐)

给 WordPress 设置 404 状态码,并且输出 html 刷新代码跳转到网站首页,这样当程序直接访问这个 URL 是会返回 404 状态码,而如果是用户的话则会在打开的瞬间跳转到首页,因为刷新设置的 0 秒(content=”0;),当然你也可以修改。

<?php
//返回 404 状态,然后通过 html 刷新跳转到首页
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
echo '<meta http-equiv="refresh" content="0;url='.home_url().'">';
exit;
?>

直接在该站点根目录下搜索404,可能会出来几个文件,睁大眼睛看,找到这个主题的404页面,在正文中增加以下代码即可。

说点什么
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...