静态网站是指所有的网页都由静态内容构成,包括客户端执行的脚本(例如JavaScript)。您可以通过静态网站托管功能将您的静态网站托管到OSS的存储空间(Bucket),并使用Bucket的访问域名访问这个网站。
场景说明
例如,您需要为目标存储空间examplebucket开启静态网站托管,examplebucket内的文件结构如下所示:
examplebucket
├── index.html
├── error.html
├── example.txt
└── subdir/
└── index.html
您希望访问子目录subdir/时,不支持跳转至子目录下的index.html页面,而是跳转至根目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面。具体步骤,请参见配置静态网站托管时未开通子目录首页。
您希望访问子目录subdir/时,支持直接跳转至子目录下的index.html页面。此外,当访问Bucket内不存在的文件时,返回默认错误页面,并通过文件404规则指定访问不存在文件时的返回结果。具体步骤,请参见配置静态网站托管时开通子目录首页。
配置静态网站托管时未开通子目录首页
- 登录OSS管理控制台。
- 单击Bucket列表,然后单击目标Bucket名称。
- 在左侧导航栏,选择。
- 在静态页面区域,单击设置,按如下说明配置各项参数。
参数 |
说明 |
默认首页 |
默认首页是您通过浏览器访问静态网站域名时,OSS返回的网站首页。此处设置为index.html。
|
子目录首页 |
选择不开通,此时访问静态网站根域名或者根域名下任何一个以正斜线(/)结尾的URL都会返回根目录默认首页。
|
默认404页 |
访问Bucket内文件出现404错误时,OSS返回的错误页面。默认404页仅支持根目录下的文件。此处设置为error.html。
|
错误文档响应码 |
您可以配置返回错误文档时的HTTP响应码为404或200。
|
- 单击保存。
配置静态网站托管时开通子目录首页
- 在左侧导航栏,选择。
- 在静态页面区域,单击设置,按如下说明配置各项参数。
参数 |
说明 |
默认首页 |
默认首页是您通过浏览器访问静态网站域名时,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返回的错误页面。默认404页仅支持根目录下的文件。此处设置为error.html。
|
错误文档响应码 |
您可以配置返回错误文档时的HTTP响应码为404或200。
|
- 单击保存。
创建并上传默认首页
当您为examplebucket配置静态网站托管时指定的默认首页为index.html,您需要将与默认首页名称相同的文件上传至examplebucket根目录下。由于examplebucket中包含了子目录subdir/,则子目录subdir/下也必须包含index.html文件。
- 创建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>
- 将index.html文件保存至本地。
- 分别将index.html文件上传至examplebucket根目录以及子目录subdir下。上传文件时,您需要将文件读写权限设置为公共读。
创建并上传默认404页
当您为examplebucket配置静态网站托管时指定的默认404页为error.html,您需要将与默认404页名称相同的文件上传至examplebucket根目录下。
- 创建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>
- 将error.html文件保存至本地。
- 将error.html文件上传至examplebucket根目录下。上传文件时,您需要将文件读写权限设置为公共读。
关闭静态网站托管
当您不再需要使用默认首页、默认404页等静态网站托管配置时,请按如下步骤关闭静态网站托管功能:
- 在左侧导航栏,选择。
- 在静态页面区域,单击设置。
- 清空默认首页和默认404页配置,然后单击保存。
返回如下页面,表示已成功关闭静态网站托管功能。