All Products
Search
Document Center

Object Storage Service:put-bucket-website

Last Updated:Mar 21, 2026

Aktifkan hosting situs web statis dan konfigurasikan aturan pengalihan untuk bucket.

Prasyarat

  • Izin: Secara default, Akun Alibaba Cloud memiliki izin oss:PutBucketWebsite. Untuk menjalankan perintah ini sebagai pengguna RAM atau pengguna Security Token Service (STS), berikan izin oss:PutBucketWebsite. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke pengguna RAM.

  • Ikhtisar fitur: Sebelum mengaktifkan hosting situs web statis, tinjau Ikhtisar hosting situs web statis.

Sintaksis perintah

ossutil api put-bucket-website --bucket <value> --website-configuration <value> [flags]
ParameterTipeWajibDeskripsi
--bucketstringYaNama bucket.
--website-configurationstringYaKonfigurasi situs web. Menerima format XML atau JSON. Gunakan awalan file:// untuk memuat konfigurasi dari file.
Perintah ini sesuai dengan Operasi API PutBucketWebsite. Untuk deskripsi lengkap semua parameter, lihat PutBucketWebsite. Untuk daftar flag global yang didukung, lihat Opsi baris perintah global.

Struktur --website-configuration

Parameter --website-configuration menerima format XML dan JSON. Bidang tingkat atasnya adalah:

BidangDeskripsi
IndexDocumentHalaman utama default. Berisi Suffix (nama file, misalnya index.html), SupportSubDir (boolean), dan Type (string).
ErrorDocumentHalaman error yang dikembalikan saat terjadi error HTTP. Berisi Key (nama file) dan HttpStatus (kode status HTTP).
RoutingRulesDaftar terurut aturan routing. Setiap aturan berisi blok RuleNumber, Condition, dan Redirect.

Struktur XML:

<WebsiteConfiguration>
  <IndexDocument>
    <Suffix>string</Suffix>
    <SupportSubDir>boolean</SupportSubDir>
    <Type>string</Type>
  </IndexDocument>
  <ErrorDocument>
    <Key>string</Key>
    <HttpStatus>string</HttpStatus>
  </ErrorDocument>
  <RoutingRules>
    <RoutingRule>
      <RuleNumber>integer</RuleNumber>
      <Condition>
        <KeyPrefixEquals>string</KeyPrefixEquals>
        <HttpErrorCodeReturnedEquals>integer</HttpErrorCodeReturnedEquals>
      </Condition>
      <Redirect>
        <HttpRedirectCode>integer</HttpRedirectCode>
        <RedirectType>string</RedirectType>
        <MirrorPassQueryString>boolean</MirrorPassQueryString>
        <MirrorFollowRedirect>boolean</MirrorFollowRedirect>
        <MirrorHeaders>
          <PassAll>boolean</PassAll>
          <Pass>string</Pass>
          ...
          <Remove>string</Remove>
          ...
          <Set>
            <Value>string</Value>
            <Key>string</Key>
          </Set>
          ...
        </MirrorHeaders>
        <MirrorURL>string</MirrorURL>
        <EnableReplacePrefix>boolean</EnableReplacePrefix>
        <ReplaceKeyWith>string</ReplaceKeyWith>
        <PassQueryString>boolean</PassQueryString>
        <MirrorCheckMd5>boolean</MirrorCheckMd5>
        <Protocol>string</Protocol>
        <HostName>string</HostName>
        <TransparentMirrorResponseCodes>string</TransparentMirrorResponseCodes>
        <ReplaceKeyPrefixWith>string</ReplaceKeyPrefixWith>
      </Redirect>
    </RoutingRule>
    ...
  </RoutingRules>
</WebsiteConfiguration>

Struktur JSON:

{
  "IndexDocument": {
    "Suffix": "string",
    "SupportSubDir": boolean,
    "Type": "string"
  },
  "ErrorDocument": {
    "Key": "string",
    "HttpStatus": "string"
  },
  "RoutingRules": {
    "RoutingRule": [
      {
        "RuleNumber": integer,
        "Condition": {
          "KeyPrefixEquals": "string",
          "HttpErrorCodeReturnedEquals": integer
        },
        "Redirect": {
          "RedirectType": "string",
          "HttpRedirectCode": integer,
          "Protocol": "string",
          "HostName": "string",
          "PassQueryString": boolean,
          "ReplaceKeyWith": "string",
          "ReplaceKeyPrefixWith": "string",
          "EnableReplacePrefix": boolean,
          "MirrorURL": "string",
          "MirrorPassQueryString": boolean,
          "MirrorFollowRedirect": boolean,
          "MirrorCheckMd5": boolean,
          "TransparentMirrorResponseCodes": "string",
          "MirrorHeaders": {
            "PassAll": boolean,
            "Pass": ["string", ...],
            "Remove": ["string", ...],
            "Set": [
              {
                "Key": "string",
                "Value": "string"
              },
              ...
            ]
          }
        }
      },
      ...
    ]
  }
}

Contoh

Contoh berikut mengonfigurasi hosting situs web statis untuk bucket bernama examplebucket.

Konfigurasi dengan aturan routing

Contoh berikut menambahkan tiga aturan routing.

Menggunakan file konfigurasi XML

Buat website-configuration.xml:

<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
  <IndexDocument>
    <Suffix>index.html</Suffix>
    <SupportSubDir>true</SupportSubDir>
    <Type>0</Type>
  </IndexDocument>
  <ErrorDocument>
    <Key>error.html</Key>
    <HttpStatus>404</HttpStatus>
  </ErrorDocument>
  <RoutingRules>
    <RoutingRule>
      <RuleNumber>1</RuleNumber>
      <Condition>
        <KeyPrefixEquals>abc/</KeyPrefixEquals>
        <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
      </Condition>
      <Redirect>
        <RedirectType>Mirror</RedirectType>
        <PassQueryString>true</PassQueryString>
        <MirrorURL>http://example.com/</MirrorURL>
        <MirrorPassQueryString>true</MirrorPassQueryString>
        <MirrorFollowRedirect>true</MirrorFollowRedirect>
        <MirrorCheckMd5>false</MirrorCheckMd5>
        <MirrorHeaders>
          <PassAll>true</PassAll>
          <Pass>myheader-key1</Pass>
          <Pass>myheader-key2</Pass>
          <Remove>myheader-key3</Remove>
          <Remove>myheader-key4</Remove>
          <Set>
            <Key>myheader-key5</Key>
            <Value>myheader-value5</Value>
          </Set>
        </MirrorHeaders>
      </Redirect>
    </RoutingRule>
    <RoutingRule>
      <RuleNumber>2</RuleNumber>
      <Condition>
        <KeyPrefixEquals>abc/</KeyPrefixEquals>
        <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
        <IncludeHeader>
          <Key>host</Key>
          <Equals>test.oss-cn-beijing-internal.aliyuncs.com</Equals>
        </IncludeHeader>
      </Condition>
      <Redirect>
        <RedirectType>AliCDN</RedirectType>
        <Protocol>http</Protocol>
        <HostName>example.com</HostName>
        <PassQueryString>false</PassQueryString>
        <ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
        <HttpRedirectCode>301</HttpRedirectCode>
      </Redirect>
    </RoutingRule>
    <RoutingRule>
      <Condition>
        <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
      </Condition>
      <RuleNumber>3</RuleNumber>
      <Redirect>
        <ReplaceKeyWith>prefix/${key}</ReplaceKeyWith>
        <HttpRedirectCode>302</HttpRedirectCode>
        <EnableReplacePrefix>false</EnableReplacePrefix>
        <PassQueryString>false</PassQueryString>
        <Protocol>http</Protocol>
        <HostName>example.com</HostName>
        <RedirectType>External</RedirectType>
      </Redirect>
    </RoutingRule>
  </RoutingRules>
</WebsiteConfiguration>

Jalankan perintah:

ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.xml

Menggunakan file konfigurasi JSON

Buat website-configuration.json:

{
  "IndexDocument": {
    "Suffix": "index.html",
    "SupportSubDir": "true",
    "Type": "0"
  },
  "ErrorDocument": {
    "Key": "error.html",
    "HttpStatus": "404"
  },
  "RoutingRules": {
    "RoutingRule": [
      {
        "RuleNumber": "1",
        "Condition": {
          "KeyPrefixEquals": "abc/",
          "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
          "RedirectType": "Mirror",
          "PassQueryString": "true",
          "MirrorURL": "http://example.com/",
          "MirrorPassQueryString": "true",
          "MirrorFollowRedirect": "true",
          "MirrorCheckMd5": "false",
          "MirrorHeaders": {
            "PassAll": "true",
            "Pass": [
              "myheader-key1",
              "myheader-key2"
            ],
            "Remove": [
              "myheader-key3",
              "myheader-key4"
            ],
            "Set": {
              "Key": "myheader-key5",
              "Value": "myheader-value5"
            }
          }
        }
      },
      {
        "RuleNumber": "2",
        "Condition": {
          "KeyPrefixEquals": "abc/",
          "HttpErrorCodeReturnedEquals": "404",
          "IncludeHeader": {
            "Key": "host",
            "Equals": "test.oss-cn-beijing-internal.aliyuncs.com"
          }
        },
        "Redirect": {
          "RedirectType": "AliCDN",
          "Protocol": "http",
          "HostName": "example.com",
          "PassQueryString": "false",
          "ReplaceKeyWith": "prefix/${key}.suffix",
          "HttpRedirectCode": "301"
        }
      },
      {
        "RuleNumber": "3",
        "Condition": {
          "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
          "RedirectType": "External",
          "Protocol": "http",
          "HostName": "example.com",
          "PassQueryString": "false",
          "ReplaceKeyWith": "prefix/${key}",
          "HttpRedirectCode": "302",
          "EnableReplacePrefix": "false"
        }
      }
    ]
  }
}

Jalankan perintah:

ossutil api put-bucket-website --bucket examplebucket --website-configuration file://website-configuration.json

Menyertakan konfigurasi secara inline

ossutil api put-bucket-website --bucket examplebucket --website-configuration "{\"IndexDocument\":{\"Suffix\":\"index.html\",\"SupportSubDir\":\"true\",\"Type\":\"0\"},\"ErrorDocument\":{\"Key\":\"error.html\",\"HttpStatus\":\"404\"},\"RoutingRules\":{\"RoutingRule\":[{\"RuleNumber\":\"1\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\"},\"Redirect\":{\"RedirectType\":\"Mirror\",\"PassQueryString\":\"true\",\"MirrorURL\":\"http://example.com/\",\"MirrorPassQueryString\":\"true\",\"MirrorFollowRedirect\":\"true\",\"MirrorCheckMd5\":\"false\",\"MirrorHeaders\":{\"PassAll\":\"true\",\"Pass\":[\"myheader-key1\",\"myheader-key2\"],\"Remove\":[\"myheader-key3\",\"myheader-key4\"],\"Set\":{\"Key\":\"myheader-key5\",\"Value\":\"myheader-value5\"}}}},{\"RuleNumber\":\"2\",\"Condition\":{\"KeyPrefixEquals\":\"abc/\",\"HttpErrorCodeReturnedEquals\":\"404\",\"IncludeHeader\":{\"Key\":\"host\",\"Equals\":\"test.oss-cn-beijing-internal.aliyuncs.com\"}},\"Redirect\":{\"RedirectType\":\"AliCDN\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"PassQueryString\":\"false\",\"ReplaceKeyWith\":\"prefix/${key}.suffix\",\"HttpRedirectCode\":\"301\"}},{\"RuleNumber\":\"3\",\"Condition\":{\"HttpErrorCodeReturnedEquals\":\"404\"},\"Redirect\":{\"ReplaceKeyWith\":\"prefix/${key}\",\"HttpRedirectCode\":\"302\",\"EnableReplacePrefix\":\"false\",\"PassQueryString\":\"false\",\"Protocol\":\"http\",\"HostName\":\"example.com\",\"RedirectType\":\"External\"}}]}}"