Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:PutBucketWebsite

Son Güncelleme:Oct 01, 2026

PutBucketWebsite işlemi, bir paketi statik web sitesi barındırma için yapılandırır ve yönlendirme kurallarını (RoutingRule) ayarlar.

Kullanım notları

Statik web siteleri; JavaScript gibi istemci tarafı betikleri içeren statik içerikten oluşur. OSS; PHP, JSP veya ASP.NET gibi sunucu tarafı işlemleri desteklemez.

  • PutBucketWebsite işlemi için oss:PutBucketWebsite izni gerekir. RAM kullanıcısına özel erişim ilkesi atama.

  • Özellikler

    Varsayılan ana sayfa, varsayılan 404 sayfası ve yönlendirme kurallarını (RoutingRule) yapılandırır. Yönlendirme kuralları 3xx yönlendirmelerini ve yansıtma tabanlı kökene geri dönmeyi destekler.

  • Statik web sitelerine özel alan adları kullanarak erişim

    Statik bir web sitesine özel alan adı kullanarak erişmek için bir CNAME kaydı ekleyin. Özel alan adı bağlama.

  • Dizin ve hata sayfaları

    Bir dizin sayfası ve bir hata sayfası belirtebilirsiniz. Her ikisi de paketteki nesneler olmalıdır.

  • Kök etki alanına anonim erişim

    Statik web sitesi barındırma yapılandırıldıktan sonra OSS, kök etki alanına yapılan anonim istekler için dizin sayfasını döndürür. Kök etki alanına imzalı istekler GetBucket (ListObjects) işleminin sonucunu döndürür.

İstek sözdizimi

PUT /?website HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue

<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>errorDocument.html</Key>
        <HttpStatus>404</HttpStatus>
    </ErrorDocument>
</WebsiteConfiguration>

İstek üstbilgileri

DescribeRegions yalnızca ortak istek üstbilgilerini kullanır. Daha fazla bilgi için bkz. Ortak istek üstbilgileri.

İstek parametreleri

  • WebsiteConfiguration içeriği


    Ad


    Tür


    Gerekli


    Açıklama


    WebsiteConfiguration


    Konteyner


    Evet

    Kök düğüm.

    Üst düğüm: Yok

  • IndexDocument içeriği

    Ad

    Tür

    Gerekli

    Açıklama

    IndexDocument

    Konteyner

    Koşullu

    Aşağıdaki konteynerlerden en az birini belirtmeniz gerekir: IndexDocument, ErrorDocument ve RoutingRules.

    Varsayılan ana sayfa için konteyner.

    Üst düğüm: WebsiteConfiguration

    Suffix

    Dize

    Koşullu

    Üst düğüm IndexDocument'i belirtirseniz bu parametre gereklidir.

    Varsayılan ana sayfa.

    OSS, eğik çizgi (/) ile biten URL'lere yapılan istekler için bu sayfayı döndürür.

    Üst düğüm: IndexDocument

    SupportSubDir

    Dize

    Hayır

    Bir alt dizin için yapılan isteklerin o alt dizindeki dizin sayfasına yönlendirilip yönlendirilmeyeceği. Geçerli değerler:

    • true: İstekleri alt dizindeki dizin sayfasına yönlendirir.

    • false (varsayılan): İstekleri alt dizindeki dizin sayfasına yönlendirmez. Bunun yerine, istekler kök dizindeki dizin sayfasına yönlendirilir.

    Örneğin, varsayılan ana sayfa index.html'dir ve bucket.oss-cn-hangzhou.aliyuncs.com/subdir/ adresine bir istek gönderilir. SupportSubDir değerini false olarak ayarlarsanız istek bucket.oss-cn-hangzhou.aliyuncs.com/index.html adresine yönlendirilir. SupportSubDir değerini true olarak ayarlarsanız istek bucket.oss-cn-hangzhou.aliyuncs.com/subdir/index.html adresine yönlendirilir.

    Üst düğüm: IndexDocument

    Type

    Sabit listesi

    Hayır

    Varsayılan ana sayfa ayarlandığında, erişilen nesnenin adı eğik çizgi (/) ile bitmediğinde ve nesne mevcut olmadığında gerçekleştirilecek işlem. Bu işlem yalnızca SupportSubDir true olarak ayarlandığında etkin olur ve RoutingRule'dan sonra, ErrorFile'dan önce uygulanır.

    Örneğin, varsayılan ana sayfa index.html'dir, bucket.oss-cn-hangzhou.aliyuncs.com/abc dosya yolu için bir istek gönderilir ve abc nesnesi mevcut değildir. Type için farklı değerlere ilişkin eylemler aşağıdaki gibidir:

    • 0 (varsayılan): abc/index.html'in var olup olmadığını kontrol eder. Yol Nesne + / + Ana Sayfa biçimindedir. Nesne mevcutsa OSS, URL kodlu /abc/ yoluna 302 yönlendirmesi döndürür. Yol / + Nesne + / biçimindedir. Nesne mevcut değilse OSS 404 hatası döndürür ve ardından bir hata sayfası arar.

    • 1: NoSuchKey hata koduyla 404 hatası döndürür ve ardından bir hata sayfası arar.

    • 2: abc/index.html'in var olup olmadığını kontrol eder. Nesne mevcutsa içeriği döndürülür. Nesne mevcut değilse OSS 404 hatası döndürür ve ardından bir hata sayfası arar.

    Üst düğüm: IndexDocument

  • Hata belgesi içeriği

    Ad

    Tür

    Gerekli

    Açıklama

    ErrorDocument

    Konteyner

    Koşullu

    Aşağıdaki konteynerlerden en az birini belirtmeniz gerekir: IndexDocument, ErrorDocument ve RoutingRules.

    404 hata sayfası için konteyner.

    Üst düğüm: WebsiteConfiguration

    Key

    Dize

    Koşullu

    Üst düğüm ErrorDocument'i belirtirseniz bu parametre gereklidir.

    Hata sayfası.

    İstenen nesne mevcut olmadığında döndürülür.

    Üst düğüm: ErrorDocument

    HttpStatus

    Dize

    Hayır

    Hata sayfasıyla birlikte döndürülecek HTTP durum kodu.

    Geçerli değerler: 200, 404 (varsayılan)

    Üst düğüm: ErrorDocument

  • RoutingRules|RoutingRule|RuleNumber


    Ad


    Tür


    Gerekli


    Açıklama


    RoutingRules


    Konteyner

    Koşullu

    Aşağıdaki konteynerlerden en az birini belirtmeniz gerekir: IndexDocument, ErrorDocument ve RoutingRules.

    Yönlendirme kuralları için konteyner.

    Üst düğüm: WebsiteConfiguration


    RoutingRule


    Konteyner


    Hayır

    Bir yönlendirme kuralı veya yansıtma tabanlı kökene geri dönme kuralı. Maksimum: 20 kural.

    Üst düğüm: RoutingRules


    RuleNumber


    Pozitif tamsayı

    Koşullu

    Üst düğüm RoutingRule'u belirtirseniz bu parametre gereklidir.

    Sıra numarası. OSS, kuralları artan sırada eşleştirir ve ilk eşleşmede durur.

    Üst düğüm: RoutingRule

  • RoutingRule içindeki Condition içeriği

    Ad

    Tür

    Gerekli

    Açıklama

    Condition

    Konteyner

    Koşullu

    Üst düğüm RoutingRule'u belirtirseniz bu parametre gereklidir.

    Eşleşme koşulları.

    Kuralın yürütülmesi için tüm koşulların karşılanması gerekir.

    Üst düğüm: RoutingRule

    KeyPrefixEquals

    Dize

    Hayır

    Kuralın uygulanması için nesne anahtarının bu öneke sahip olması gerekir.

    Üst düğüm: Condition

    HttpErrorCodeReturnedEquals

    HTTP durum kodu

    Hayır

    Bu kuralı tetikleyen istenen nesne için döndürülen HTTP durum kodu. Yansıtma tabanlı kökene geri dönme için 404 olarak ayarlayın.

    Üst düğüm: Condition

    IncludeHeader

    Konteyner

    Hayır

    Kuralın uygulanması için istek belirtilen üstbilgiyi ve değeri içermelidir. En fazla 10 üstbilgi belirtebilirsiniz.

    Üst düğüm: Condition

    Key

    Dize

    Evet

    Bu kural yalnızca istek belirtilen üstbilgiyi içeriyorsa ve değeri Equals için belirtilen değerle tam olarak eşleşiyorsa uygulanır.

    Üst düğüm: IncludeHeader

    Equals

    Dize

    Hayır

    İstek üstbilgisinin değeri. Kural yalnızca istek Key tarafından belirtilen üstbilgiyi içeriyorsa ve değeri bu değerle eşleşiyorsa uygulanır.

    Üst düğüm: IncludeHeader

    KeySuffixEquals

    Dize

    Hayır

    Kuralın uygulanması için nesne anahtarının bu soneke sahip olması gerekir.

    Varsayılan değer boştur, bu da hiçbir sonekin eşleşmediği anlamına gelir.

    Üst düğüm: Condition

  • Yönlendirme yapılandırması

    Ad

    Tür

    Gerekli

    Açıklama

    Redirect

    Konteyner

    Koşullu

    Üst düğüm RoutingRule'u belirtirseniz bu parametre gereklidir.

    Kural eşleştiğinde gerçekleştirilecek eylem.

    Üst düğüm: RoutingRule

    RedirectType

    Dize

    Koşullu

    Üst düğüm Redirect'i belirtirseniz bu parametre gereklidir.

    Yönlendirme türü. Geçerli değerler:

    • Mirror: yansıtma tabanlı kökene geri dönme.

    • External: harici yönlendirme. OSS başka bir adrese 3xx yönlendirmesi döndürür.

    • AliCDN: Alibaba Cloud CDN yönlendirmesi. Bu tür Alibaba Cloud CDN için kullanılır. Harici yönlendirmeden farklı olarak OSS isteğe ek bir üstbilgi ekler. Alibaba Cloud CDN bu üstbilgiyi algıladıktan sonra isteği belirtilen adrese yönlendirir ve alınan verileri kullanıcıya döndürür; kullanıcıya 3xx yönlendirme isteği döndürmez.

    Üst düğüm: Redirect

    PassQueryString

    Boolean

    Hayır

    Orijinal istekteki sorgu dizesinin yönlendirme veya kökene geri dönme isteğine dahil edilip edilmeyeceği.

    Örneğin, bir kullanıcı ?a=b&c=d sorgu dizesiyle bir istek gönderir. PassQueryString değerini true olarak ayarlarsanız ve kural bir 302 yönlendirmesi belirtirse yanıtın Location üstbilgisi Location:example.com?a=b&c=d gibi sorgu dizesini içerir. Kural yansıtma tabanlı kökene geri dönmeyi belirtiyorsa kökene geri dönme isteği de sorgu dizesini içerir.

    Geçerli değerler: true, false (varsayılan)

    Üst düğüm: Redirect

    MirrorURL

    Dize

    Koşullu

    RedirectType Mirror olarak ayarlandıysa bu parametre gereklidir.

    Yansıtma tabanlı kökene geri dönme için kaynak sunucu adresi. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Adres http:// veya https:// ile başlamalı ve eğik çizgi (/) ile bitmelidir. OSS, kökene geri dönme URL'sini oluşturmak için nesne adını bu adrese ekler.

    Örneğin, istenen nesne myobject ise ve bu parametreyi http://example.com/ olarak ayarlarsanız kökene geri dönme URL'si http://example.com/myobject olur. Bu parametreyi http://example.com/dir1/ olarak ayarlarsanız kökene geri dönme URL'si http://example.com/dir1/myobject olur.

    Üst düğüm: Redirect

    MirrorPassQueryString

    Boolean

    Hayır

    PassQueryString ile aynıdır ancak daha yüksek önceliğe sahiptir. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Varsayılan değer: false

    Üst düğüm: Redirect

    MirrorFollowRedirect

    Boolean

    Hayır

    Kaynak sunucudan gelen 3xx yönlendirmelerinin takip edilip edilmeyeceği. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Örneğin, kaynak sunucu bir Location üstbilgisiyle 302 yönlendirmesi döndürür.

    • Bu parametreyi true olarak ayarlarsanız OSS, Location üstbilgisinde belirtilen adrese yeni bir istek gönderir.

      En fazla 10 yönlendirme takip edilir. Yönlendirme sayısı 10'u aşarsa kökene geri dönme isteği başarısız olur.

    • Bu parametreyi false olarak ayarlarsanız OSS 302 yönlendirmesini döndürür ve Location üstbilgisini istemciye iletir.

    Varsayılan değer: true

    Üst düğüm: Redirect

    MirrorCheckMd5

    Boolean

    Hayır

    Kaynak sunucudan gelen yanıt gövdesinin MD5 hash değerinin doğrulanıp doğrulanmayacağı. Yalnızca RedirectType Mirror olduğunda etkili olur.

    MirrorCheckMd5 true olduğunda ve kaynak yanıtı bir Content-Md5 üstbilgisi içeriyorsa OSS, çekilen verileri üstbilgi değerine göre doğrular. Eşleşmeyen veriler kaydedilmez.

    Varsayılan değer: false

    Üst düğüm: Redirect

    MirrorHeaders

    Konteyner

    Hayır

    Kökene geri dönme isteğine dahil edilecek üstbilgiler. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Üst düğüm: Redirect

    PassAll

    Boolean

    Hayır

    Aşağıdaki üstbilgiler hariç tüm istek üstbilgilerinin kaynak sunucuya geçirilip geçirilmeyeceği. Yalnızca RedirectType Mirror olduğunda etkili olur.

    • content-length, authorization2, authorization, range ve date gibi üstbilgiler

    • oss-, x-oss- veya x-drs- ile başlayan üstbilgiler

    Varsayılan değer: false

    Üst düğüm: MirrorHeaders

    Pass

    Dize

    Hayır

    Kaynak sunucuya geçirilecek belirtilen üstbilgiler. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Her üstbilginin uzunluğu en fazla 1024 bayt olabilir ve yalnızca rakamlar (0-9), harfler (a-z, A-Z) ve tire (-) içerebilir.

    En fazla 10 üstbilgi belirtebilirsiniz.

    Üst düğüm: MirrorHeaders

    Remove

    Dize

    Hayır

    Kaynak sunucuya geçirilmesi yasaklanan belirtilen üstbilgiler. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Her üstbilginin maksimum uzunluğu 1024 bayttır ve Pass ile aynı karakter kümesini kullanır.

    En fazla 10 üstbilgi belirtebilirsiniz. Bu parametre genellikle PassAll ile birlikte kullanılır.

    Üst düğüm: MirrorHeaders

    Set

    Konteyner

    Hayır

    Orijinal isteğin onu içerip içermediğinden bağımsız olarak kökene geri dönme isteğine dahil edilecek bir üstbilgi ayarlar. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Bu konteyneri en fazla 10 gruba atayabilirsiniz.

    Üst düğüm: MirrorHeaders

    Key

    Dize

    Koşullu

    Üst düğüm Set'i belirtirseniz bu parametre gereklidir.

    Ayarlanacak üstbilginin anahtarı. Anahtarın uzunluğu en fazla 1024 bayt olabilir ve yalnızca rakamlar (0-9), harfler (a-z, A-Z) ve tire (-) içerebilir. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Üst düğüm: Set

    Value

    Dize

    Koşullu

    Üst düğüm Set'i belirtirseniz bu parametre gereklidir.

    Ayarlanacak üstbilginin değeri. Değerin uzunluğu en fazla 1024 bayt olabilir ve \r\n içeremez. Yalnızca RedirectType Mirror olduğunda etkili olur.

    Üst düğüm: Set

    Protocol

    Dize

    Hayır

    Yönlendirme için kullanılacak protokol. Yalnızca RedirectType External veya AliCDN olduğunda etkili olur.

    Örneğin, istenen nesne test ise, yönlendirme hedefini example.com olarak ayarlarsınız ve Protocol değerini https olarak ayarlarsanız Location üstbilgisi https://example.com/test olur.

    Geçerli değerler: http, https.

    Üst düğüm: Redirect

    HostName

    Dize

    Hayır

    Yönlendirme için kullanılacak alan adı. Alan adı geçerli olmalıdır.

    Örneğin, istenen nesne test ise, Protocol değerini https olarak ayarlarsınız ve HostName değerini example.com olarak ayarlarsanız Location üstbilgisi https://example.com/test olur.

    Üst düğüm: Redirect

    ReplaceKeyPrefixWith

    Dize

    Hayır

    Yönlendirme sırasında nesne anahtarı önekini değiştirmek için kullanılan dize. Önek boşsa bu dize nesne anahtarının başına eklenir.

    Not

    ReplaceKeyWith veya ReplaceKeyPrefixWith belirtebilirsiniz ancak ikisini birden belirtemezsiniz.

    Örneğin, istenen nesne abc/test.txt ise, KeyPrefixEquals değerini abc/ olarak ayarlarsınız ve ReplaceKeyPrefixWith değerini def/ olarak ayarlarsanız Location üstbilgisi http://example.com/def/test.txt olur.

    Üst düğüm: Redirect

    EnableReplacePrefix

    Boolean

    Hayır

    Bu parametre true olarak ayarlanırsa nesne öneki ReplaceKeyPrefixWith değeri ile değiştirilir. Bu parametre belirtilmezse veya boşsa nesne öneki kısaltılır.

    Not

    ReplaceKeyWith parametresi boş değilse bu parametreyi true olarak ayarlayamazsınız.

    Varsayılan değer: false

    Üst düğüm: Redirect

    ReplaceKeyWith

    Dize

    Hayır

    Yönlendirme sırasında tüm nesne anahtarını değiştirir. Orijinal nesne anahtarına başvurmak için ${key} değişkenini kullanın.

    Örneğin, istenen nesne test ise ve ReplaceKeyWith değerini prefix/${key}.suffix olarak ayarlarsanız Location üstbilgisi http://example.com/prefix/test.suffix olur.

    Üst düğüm: Redirect

    HttpRedirectCode

    HTTP durum kodu

    Hayır

    Yönlendirme için döndürülecek HTTP durum kodu. Yalnızca RedirectType External veya AliCDN olduğunda etkili olur.

    Geçerli değerler: 301 (varsayılan), 302, 307.

    Üst düğüm: Redirect

Yanıt üstbilgileri

Yanıt yalnızca ortak yanıt üstbilgilerini içerir. Daha fazla bilgi için bkz. Ortak yanıt üstbilgileri.

Örnekler

  • İstek örneği

    PUT /?website HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 209
    Date: Thu, 17 Apr 2025 03:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    
    <?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>
    </WebsiteConfiguration>
  • Yanıt örneği

    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906008B
    Date: Fri, 04 May 2012 03:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
  • Tam örnek

    PUT /?website HTTP/1.1
    Date: Thu, 17 Apr 2025 09:03:18 GMT
    Content-Length: 2064
    Host: test.oss-cn-hangzhou-internal.aliyuncs.com
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    User-Agent: aliyun-sdk-python-test/0.4.0
    
    <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>
    
    HTTP/1.1 200 OK
    Server: AliyunOSS
    Date: Fri, 27 Jul 2018 09:03:18 GMT
    Content-Length: 0
    Connection: keep-alive
    x-oss-request-id: 5B5ADFD6ED3CC49176CBE29D
    x-oss-server-time: 47

SDK

CLI (ossutil)

ossutil komutu: put-bucket-website.

Hata kodları


Hata kodu


HTTP durum kodu


Açıklama


InvalidDigest


400


Content-MD5 üstbilgisi değeri, OSS'nin istek gövdesi için hesapladığı MD5 hash değeriyle eşleşmiyor.