すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:バケットのウェブサイト設定

最終更新日:Mar 21, 2026

バケットに対して静的 Web サイトホスティングを有効にし、リダイレクトルールを設定します。

前提条件

  • 権限: 既定では、Alibaba Cloud アカウント (root ユーザー) は oss:PutBucketWebsite 権限を持ちます。RAM ユーザーまたはセキュリティトークンサービス (STS) ユーザーとしてこのコマンドを実行するには、oss:PutBucketWebsite 権限を付与する必要があります。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • 機能概要: 静的 Web サイトホスティングを有効にする前に、「静的 Web サイトホスティングの概要」を確認してください。

コマンド構文

ossutil api put-bucket-website --bucket <value> --website-configuration <value> [flags]
パラメータータイプ必須説明
--bucketstringはいバケットの名前です。
--website-configurationstringはいウェブサイト設定です。XML または JSON フォーマットを受け入れます。file:// プレフィックスを使用して、ファイルから設定をロードできます。
このコマンドは PutBucketWebsite API オペレーションに対応しています。すべてのパラメーターの詳細な説明については、「PutBucketWebsite」をご参照ください。サポートされているグローバルフラグについては、「グローバルコマンドラインオプション」をご参照ください。

--website-configuration の構造

--website-configuration パラメーターは XML および JSON の両方のフォーマットを受け入れます。最上位レベルのフィールドは以下のとおりです。

フィールド説明
IndexDocumentデフォルトのホームページです。Suffix(ファイル名。例:index.html)、SupportSubDir(真偽値)、および Type(文字列)を含みます。
ErrorDocumentHTTP エラー時に返されるエラーページです。Key(ファイル名)および HttpStatus(HTTP ステータスコード)を含みます。
RoutingRules順序付きのルーティングルールリストです。各ルールには RuleNumberCondition、および Redirect ブロックが含まれます。

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>

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"
              },
              ...
            ]
          }
        }
      },
      ...
    ]
  }
}

使用例

以下の例では、examplebucket という名前のバケットに対して静的 Web サイトホスティングを設定します。

ルーティングルールを含む設定

以下の例では、3 つのルーティングルールを追加します。

XML 設定ファイルを使用する場合

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>

コマンドを実行します。

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

JSON 設定ファイルを使用する場合

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"
        }
      }
    ]
  }
}

コマンドを実行します。

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

インラインで設定を渡す場合

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\"}}]}}"