配置OSS静态网站托管404页面后提示无法访问网站

问题描述

网站配置OSS静态网站托管404后,当访问资源不存在时,会默认返回404页面。若访问网站提示以下报错,可通过本文进行操作。

无法访问此网站,网址为http://xxxxx.oss-cn-beijing.aliyuncs.com/help/agreements/student/的网页可能暂时无法连接,或者它已永久性地移动到了新网址。ERR_INVALID_RESPONSE
image.png

排查过程

查看浏览器的Network元素

  1. 打开Chrome浏览器的开发者模式,单击Network,选择Name下面的选项,单击Response,确认Response页签下的内容为空,提示Failed to load response data的报错。 image (1).png

  2. 单击Headers,查看Headers页签下的内容,确认存在OSS 404的提示。 image (2).png

抓包分析

通过抓包分析确认服务端有相应body体,说明OSS响应正常,因此判断是客户端的限制。

Dingtalk_20210512150456.jpg

问题原因

访问不到资源的时候,OSS会响应StatusCode为404的状态码。由于用户配置了默认404页面,此时OSS会把配置的默认404页面的HTML返回,而直接使用OSS域名访问HTML时,OSS会响应Content-Disposition: attachment,该情况下会被Chrome浏览器判断为不合法。

解决方案

请您绑定自定义域名,直接使用自定义域名进行访问。具体操作,请参见绑定自定义域名。绑定后不会有Content-Disposition: attachment的默认下载行为,即返回的404也会正常响应body的内容。