静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本(例如JavaScript)。您可以通过静态网站托管功能将您的静态网站托管到OSS的存储空间(Bucket),并使用Bucket的访问域名访问这个网站。

注意事项

出于安全考虑,中国区域自2018年8月13日起,中国以外区域自2019年9月25日起,通过浏览器访问OSS上网页类型文件(mimetype为text/html,扩展名包括HTM、HTML、JSP、PLG、HTX、STM):
  • 使用OSS默认域名访问时,Response Header中会自动加上 Content-Disposition:'attachment=filename;'。即从浏览器访问网页类型文件时,不会显示文件内容,而是以附件形式进行下载。
  • 使用绑定的自定义域名访问OSS时,Response Header中不会加上 Content-Disposition:'attachment=filename;',只要您的浏览器支持该类型文件的预览,可以直接预览文件内容。绑定自定义域名详细步骤请参见绑定自定义域名

更多信息请参见静态网站托管介绍

场景说明

例如,您需要为目标存储空间examplebucket开启静态网站托管,examplebucket内的文件结构如下所示:

examplebucket
 ├── index.html
 ├── error.html
 ├── example.txt
 └── subdir/
      └── index.html

您希望访问子目录subdir/时,不支持跳转至子目录下的index.html页面,而是跳转至根目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面。具体步骤,请参见配置静态网站托管时未开通子目录首页

您希望访问子目录subdir/时,支持直接跳转至子目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面,并通过文件404规则指定访问不存在文件时的返回结果。具体步骤,请参见配置静态网站托管时开通子目录首页

配置静态网站托管时未开通子目录首页

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 选择基础设置 > 静态页面,在静态页面区域单击设置,按如下说明配置各项参数:
    index1
    参数 说明
    默认首页 默认首页是您通过浏览器访问静态网站域名时,OSS返回的网站首页。此处设置为index.html
    子目录首页 选择不开通,此时访问静态网站根域名或者根域名下任何一个以正斜线(/)结尾的URL都会返回根目录默认首页。
    默认404页 访问Bucket内文件出现404错误时,OSS返回的错误页面。仅支持根目录下HTML、JPG、PNG、BPM、WEBP格式的文件。此处设置为error.html
    错误文档响应码 您可以配置返回错误文档时的HTTP响应码为404200
  4. 单击保存

配置静态网站托管时开通子目录首页

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 选择基础设置 > 静态页面,在静态页面区域单击设置,按如下说明配置各项参数:
    error
    参数 说明
    默认首页 默认首页是您通过浏览器访问静态网站域名时,OSS返回的网站首页。此处设置为index.html
    子目录首页 选择开通。开通子目录首页后,访问静态网站根域名时,返回根目录默认首页。访问根域名下以正斜线(/)结尾的URL时会返回对应目录的默认首页。例如,访问示例中的https://examplebucket.oss-cn-hangzhou.aliyuncs.com/subdir/时,则返回subdir/目录下的默认首页文件index.html
    文件404规则 开通子目录首页后,通过文件404规则决定访问不存在的Object时的返回结果。例如,访问https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir,因示例中不存在exampledir文件,则根据设置的文件404规则返回对应信息:
    • Redirect(默认值):检查exampledir/index.html是否存在。
      • 如果文件存在则返回302,并将访问请求重定向为https://examplebucket.oss-cn-hangzhou.aliyuncs.com/exampledir/index.html
      • 如果文件不存在则返回404,并继续检查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html。如果error.html页面也不存在该文件,则返回404状态码。
    • NoSuckKey:直接返回404,并继续检查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html
    • Index:检查exampledir/index.html是否存在。
      • 如果文件存在则返回200,并直接返回文件内容。
      • 如果文件不存在,则继续检查https://examplebucket.oss-cn-hangzhou.aliyuncs.com/error.html
    默认404页 访问Bucket内文件出现404错误时,OSS返回的错误页面。仅支持根目录下HTML、JPG、PNG、BPM、WEBP格式的文件。此处设置为error.html
    错误文档响应码 您可以配置返回错误文档时的HTTP响应码为404200
  4. 单击保存

创建并上传默认首页

当您为examplebucket配置静态网站托管时指定的默认首页为index.html,您需要将与默认首页名称相同的文件上传至examplebucket根目录下。由于examplebucket中包含了子目录subdir/,则子目录subdir/下也必须包含index.html文件。

  1. 创建index.html文件。index.html文件配置示例如下:
    <html>
    <head>
        <title>My Website Home Page</title>
        <meta charset="utf-8">
    </head>
    <body>  
      <p>Now hosted on OSS.</p>
    </body>
    </html>
  2. 将index.html文件保存至本地。
  3. 分别将index.html文件上传至examplebucket根目录以及子目录subdir下。上传文件时,您需要将文件读写权限设置为公共读。
    有关上传文件的具体操作,请参见上传文件

创建并上传默认404页

当您为examplebucket配置静态网站托管时指定的默认404页为error.html,您需要将与默认404页名称相同的文件上传至examplebucket根目录下。

  1. 创建error.html文件。error.html文件配置示例如下:
    <html>
    <head>
        <title>Hello OSS!</title>
        <meta charset="utf-8">
    </head>
    <body>  
      <p>This is error 404 page.</p>
    </body>
    </html>
  2. 将error.html文件保存至本地。
  3. 将error.html文件上传至examplebucket根目录下。上传文件时,您需要将文件读写权限设置为公共读。
    有关上传文件的具体操作,请参见上传文件