打开一个网页,网页屏幕上蹦出“404 Not Found”,出现这大概是解决上网时最让人扫兴的事之一。你明明记得昨天还能打开,网页链接也没敲错,出现怎么就找不到了?解决先别急着关掉页面,404不代表网站彻底挂了,网页它只是出现告诉你:这个地址对应的内容,服务器上找不着了。解决
我自己遇到过好几次。网页有一次想查一个老教程,出现链接是解决从别人博客里复制来的,点进去就是网页404。当时第一反应是出现“这网站是不是倒闭了”,结果手动把网址里多余的解决那串参数删掉,首页正常打开。问题出在那个具体页面上,不是整个站。
先搞清楚是谁的问题
404分两种。一种是网站自己出了状况,比如页面被删了、改名了、或者服务器配置出了错。另一种是你这边的问题——链接复制时漏了字符,或者从某个旧书签里点进来,那个地址早就失效了。
怎么判断?最简单的办法:把网址从域名开始手动敲一遍。比如
https://example.com/blog/old-post打不开,就只输https://example.com。如果首页能开,说明网站活着,只是那个具体页面没了。如果首页也打不开,那可能是整个站挂了,或者你网络有问题。普通用户能做什么
你不是网站管理员的话,能做的事有限,但也不是干瞪眼。
先看网址栏。有时候是末尾多了个斜杠,或者大小写错了。服务器对大小写敏感的情况不少见,
/About和/about可能是两个结果。还有那种带一长串?utm_source=...的链接,把问号后面的全删掉再试,经常能救回来。再就是去首页找。很多网站有搜索框,把你想找的内容关键词输进去。或者从导航栏一层层点进去,比直接猜URL靠谱得多。我习惯用站内搜索,比在搜索引擎里加
site:还快。如果这个页面对你很重要,比如是某个产品的说明书或者一篇引用过的文章,可以试试网页快照。百度、Google都有缓存版本,虽然可能不是最新的,但内容通常还在。Wayback Machine(互联网档案馆)也值得一试,它存了大量历史页面,输入网址就能看有没有存档。
如果你是网站管理员
那就得从服务器端查了。先看文件是不是真的还在。有时候是部署时漏传了,或者路径写错了。Nginx和Apache的配置文件里,
root或DocumentRoot指向的目录对不对,try_files规则有没有把请求正确转发。伪静态规则也常出问题。比如WordPress改固定链接后没更新
.htaccess,或者用了某些框架,路由没配好,本来该由PHP处理的请求被服务器当成静态文件去找,找不到就404。还有种情况:服务器权限。文件明明在,但权限设成了
600,Web服务器用户读不了,也会返回404。这种最隐蔽,查日志才能发现。我见过一个案例,某公司官网改版后,旧的产品页全部404。他们没做重定向,直接删了旧文件。结果搜索引擎里收录的链接全废了,流量掉了一大截。正确做法是用301重定向把旧地址指到新地址,既保住流量,也告诉搜索引擎“这个页面永久搬家了”。
别把404当世界末日
对用户来说,404就是一个信号:此路不通,换条路走。对站长来说,404是提醒你哪里断了链,该修就修,该重定向就重定向。一个设计得好的404页面,会给出首页链接、搜索框或者热门文章推荐,而不是冷冰冰一句“Not Found”。
下次再碰到,先别烦。看一眼网址,删掉多余参数,回首页搜一下。多数时候,内容还在,只是换了个地方。
顶: 79618踩: 9






评论专区