起因
我的 潇湘君 站点很久没有运营了,21年至今因为家庭的原因,小孩出生、家庭变故等等一荒废就好几年。
今年又重新把它搭建起来了,但是由于很久没有建站,很多熟悉的技能有点生疏,只能遇到一点麻烦,然后从互联网的信息大海里找解决方案。
这不,基本的404跳转首页我给忘了~23333333....
接下来,就跟着我一起操作404跳转吧。
WHY?为什么需要设置404跳转?
这是谷歌Ai给出的答案,我换做简单易懂的语言给大家描述一下吧:
想想这样一个场景,假设某个用户在 潇湘君 的站点,不知道什么原因,突然访问到一个不存在的页面,如下图
这个时候站在访问页面的用户角度想一下:一个网页不存在,他/她会面临两种选择,要么直接关闭网页离开,要么刷新这个页面(实际上刷新并没有什么用,因为如果不变更网址路径的情况下,重新刷新,还是会停留在这个页面)。
这种情况,网站给到访问者用户的体验感就不是很好。这个时候就催生了404页面自动跳转到首页(或者其其它页面的需求),提升用户的网站体验感。如下
实际操作
一、宝塔面板操作
1.1 网站--伪静态,设置wordpress伪静态
1.2 注释 配置文件 里的404状态,(宝塔自带功能)
二、创建404.php文件
在网站主题处,创建一个404.php文件(一般wordpress主题默认都会带404.php文件)
2.1 依次在网站 根目录->wordpress->wp-content->themes->[你自己的主题] 的路径,比如我用的是 kratos 这个主题(感谢大佬),如下
2.2 选择以下代码添加到 文章的404页面 (404.php)
双击上图宝塔路径的 404.php 文件,将以下四种方式的其中一种粘贴到文件中,如下图
第一种,直接跳转
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".get_bloginfo("url"));
exit();
?>
第二种,直接跳转
<?php
//WordPress 301 跳转到网站首页
wp_redirect(home_url(), 301);exit;
?>
第三种,直接载入首页 返回 404 状态
<?php
//直接载入首页 返回 404 状态
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include( get_query_template( 'index' ) );
die();
?>
第四种,返回 404 状态,然后通过 html 刷新跳转到首页
<?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;
?>
最后
以上代码都是通过添加到当前 WordPress 主题的 404.php 文件的顶部.
但是本人比较推荐第四种方法,给 WordPress 设置 404 状态码,并且输出 html 刷新代码跳转到网站首页,这样当程序直接访问这个 URL 是会返回 404 状态码,而如果是用户的话则会在打开的瞬间跳转到首页,因为刷新设置的 0 秒(content=”0;),当然你也可以修改。
文章评论