做建站这行十五年,我见过太多小白朋友,兴冲冲把代码传上去,结果浏览器里赫然跳出一行冷冰冰的“网站建设中”或者“Under Construction”。那一刻的心凉,我太懂了。别慌,这通常不是服务器坏了,而是你的配置或者文件逻辑有个小疙瘩没解开。今天不整那些虚头巴脑的理论,直接上干货,帮你快速定位问题。
先说最常见的情况,也是90%的人踩的坑:首页文件名不对。很多新手朋友,本地测试的时候叫index.html,上传的时候手滑改成了home.html,或者干脆叫default.html。服务器默认只认index.html或index.php。你传了一堆文件,但服务器找不到入口,有些主机商为了友好,会直接返回一个默认的“建设中”页面。这时候你检查一下根目录,把首页重命名为index.html试试。记住,是根目录,别藏在子文件夹里。
第二个坑,权限问题。上传工具里有个权限设置,很多人为了省事,全选644或者755,看着挺专业,其实可能把关键文件锁死了。特别是如果你用的是PHP程序,像WordPress或者帝国CMS,wp-config.php或者config.php这种配置文件,权限要是太高(比如777),有些安全策略严格的服务器会直接拦截访问,或者因为权限过低导致无法读取模板文件,从而显示默认的错误页。建议首页文件设为644,文件夹设为755,具体看你主机商的要求,一般默认就行,除非你改了权限导致报错。
第三个坑,.htaccess文件作祟。如果你用的是Apache服务器,根目录下有个.htaccess文件,里面可能写着强制跳转或者维护模式的代码。比如有些一键部署工具,会在.htaccess里加一段代码,让所有访问都指向maintenance.html。你上传了新的代码,但没覆盖这个隐藏文件,或者没删除里面的维护逻辑。这时候,打开你的FTP客户端,记得开启“显示隐藏文件”,看看根目录下有没有这个文件,打开看看里面有没有类似RewriteRule或者ErrorDocument的指令,如果有,暂时重命名它,比如改成.htaccess.bak,刷新网页看看是不是恢复正常了。
我有个客户,上个月找我救火,说是刚建的官网打不开。我远程过去一看,他传的是静态HTML,但服务器环境是Nginx,他没配置伪静态,而且首页叫index.htm,服务器默认配置里只匹配index.html。这就导致Nginx找不到文件,返回404,但他主机商做了自定义404页面,显示的就是“网站建设中”。这种细节,新手根本想不到。所以,上传前最好先问清楚主机商支持什么格式,Nginx和Apache对文件名的敏感度不一样。
还有种情况,是缓存没清。你明明改了代码,上传也成功了,但浏览器里还是旧页面,或者显示建设中。这时候别急着改代码,先Ctrl+F5强制刷新,或者换个浏览器试试。有时候CDN节点缓存了旧的维护页面,你得去CDN控制台刷新缓存,或者等它自然过期。我一般建议客户,上线前先把CDN关掉,测试通了再开,省得折腾。
最后,检查一下域名解析。有时候域名刚解析过来,DNS还没完全生效,部分地区访问正常,部分地区显示建设中或无法连接。这时候用全球DNS查询工具查一下,看看A记录是否指向你的服务器IP。如果解析错了,那传再多文件也没用。
排查步骤很简单:第一步,确认首页文件名是index.html或index.php;第二步,检查.htaccess文件是否有维护跳转代码;第三步,清除浏览器缓存和CDN缓存;第四步,核对域名解析是否正确。按这个顺序走,基本能解决大部分问题。要是还不行,那可能是主机商底层配置有问题,直接找客服,让他们帮你查error_log日志,那里面写得清清楚楚。建站这事儿,细节决定成败,别怕麻烦,多试几次就熟了。