

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# (Opsional) Mengonfigurasi pengalihan halaman web
<a name="how-to-page-redirect"></a>

Jika bucket Amazon S3 Anda dikonfigurasi untuk hosting situs web statis, Anda dapat mengonfigurasi pengalihan untuk bucket atau objek Anda di dalamnya. Anda memiliki opsi berikut untuk mengonfigurasikan pengalihan.

**Topics**
+ [Permintaan pengalihan untuk titik akhir situs web bucket Anda ke bucket atau domain lain](#redirect-endpoint-host)
+ [Konfigurasikan aturan pengalihan untuk menggunakan pengalihan bersyarat lanjutan](#advanced-conditional-redirects)
+ [Mengalihkan permintaan untuk objek](#redirect-requests-object-metadata)

## Permintaan pengalihan untuk titik akhir situs web bucket Anda ke bucket atau domain lain
<a name="redirect-endpoint-host"></a>

Anda dapat mengalihkan semua permintaan ke sebuah titik akhir situs web untuk sebuah bucket ke bucket atau domain yang lain. Jika Anda mengalihkan semua permintaan, permintaan apapun yang dibuat ke titik akhir situs web dialihkan ke bucket atau domain tertentu. 

Misalnya, jika domain root Anda adalah `example.com`, dan Anda ingin melayani permintaan untuk keduanya `http://example.com` dan `http://www.example.com`, Anda harus membuat dua bucket bernama `example.com` dan `www.example.com`. Kemudian, pertahankan konten di bucket `example.com`, dan konfigurasikan bucket `www.example.com` lainnya untuk mengalihkan semua permintaan ke bucket `example.com`. Untuk informasi selengkapnya, lihat [Mengonfigurasi Situs Web Statis Menggunakan Nama Domain Khusus](https://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html).

**Untuk mengalihkan permintaan titik akhir situs web bucket**

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di Bawah **Bucket**, pilih nama bucket tempat Anda ingin mengalihkan permintaan (misalnya, `www.example.com`).

1. Pilih **Properti**.

1. Di bagian bawah **Hosting situs web statis**, pilih **Edit**.

1. Pilih **Alihkan permintaan objek**. 

1. Di kotak **Nama host**, masukkan titik akhir situs web untuk bucket atau domain khusus Anda.

   Misalnya, jika Anda mengalihkan ke alamat domain root, Anda akan memasukkan **example.com**.

1. Untuk **Protokol**, pilih protokol untuk permintaan pengalihan (**tidak ada**,**http**, atau **https**).

   Jika Anda tidak menentukan protokol, opsi default adalah **tidak ada**.

1. Pilih **Simpan perubahan**.

## Konfigurasikan aturan pengalihan untuk menggunakan pengalihan bersyarat lanjutan
<a name="advanced-conditional-redirects"></a>

Menggunakan aturan pengalihan lanjutan, Anda dapat mengirimkan permintaan secara bersyarat sesuai dengan nama kunci, prefiks tertentu dalam permintaan, atau kode tanggapan. Misalnya, bayangkan bahwa Anda menghapus atau mengganti nama sebuah objek di dalam bucket Anda. Anda dapat menambahkan aturan perutean yang mengarahkan permintaan ke objek lain. Jika Anda ingin membuat folder menjadi tidak tersedia, Anda dapat menambahkan aturan perutean untuk mengalihkan permintaan ke halaman web lain. Anda juga dapat menambahkan aturan perutean untuk menangani kondisi kesalahan dengan mengirimkan permintaan yang mengembalikan kesalahan ke domain lain saat kesalahan diproses.

Saat mengaktifkan hosting situs web statis untuk bucket Anda, Anda dapat menentukan aturan pengalihan lanjutan secara opsional. Amazon S3 memiliki batasan 50 aturan perutean per konfigurasi situs web. Jika Anda memerlukan lebih dari 50 aturan perutean, Anda dapat menggunakan pengalihan objek. Untuk informasi selengkapnya, lihat [Menggunakan konsol S3](#page-redirect-using-console).

Untuk informasi lebih lanjut tentang konfigurasi aturan perutean menggunakan API REST, lihat [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) dalam *Referensi API Layanan Penyimpanan Sederhana Amazon*.

**penting**  
Untuk membuat aturan pengalihan di konsol Amazon S3, Anda harus menggunakan JSON. Untuk contoh JSON, lihat [Contoh aturan pengalihan](#redirect-rule-examples).

**Untuk mengonfigurasi aturan pengalihan situs web statis**

Untuk menambahkan aturan pengalihan ke bucket yang telah mengaktifkan hosting situs web statis, ikuti langkah-langkah ini.

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket tujuan umum**.

1. Dalam daftar bucket, pilih nama bucket yang telah Anda konfigurasikan sebagai situs web statis.

1. Pilih **Properti**.

1. Di bagian bawah **Hosting situs web statis**, pilih **Edit**.

1. Di kotak **Aturan pengalihan**, masukkan aturan pengalihan Anda di JSON. 

   Pada konsol S3 Anda mendeskripsikan aturan menggunakan JSON. Untuk contoh JSON, lihat [Contoh aturan pengalihan](#redirect-rule-examples). Amazon S3 memiliki batasan 50 aturan perutean per konfigurasi situs web.

1. Pilih **Simpan perubahan**.

### Elemen aturan perutean
<a name="configure-bucket-as-website-routing-rule-syntax"></a>

Berikut ini adalah sintaks umum untuk menentukan aturan perutean dalam konfigurasi situs web di JSON dan XML Untuk mengonfigurasi aturan pengalihan di konsol S3 yang baru, Anda harus menggunakan JSON. Untuk contoh JSON, lihat [Contoh aturan pengalihan](#redirect-rule-examples).

------
#### [ JSON ]

```
[
    {
      "Condition": {
        "HttpErrorCodeReturnedEquals": "string",
        "KeyPrefixEquals": "string"
      },
      "Redirect": {
        "HostName": "string",
        "HttpRedirectCode": "string",
        "Protocol": "http"|"https",
        "ReplaceKeyPrefixWith": "string",
        "ReplaceKeyWith": "string"
      }
    }
  ]
 
Note: Redirect must each have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------
#### [ XML ]

```
<RoutingRules> =
    <RoutingRules>
         <RoutingRule>...</RoutingRule>
         [<RoutingRule>...</RoutingRule>   
         ...]
    </RoutingRules>

<RoutingRule> =
   <RoutingRule>
      [ <Condition>...</Condition> ]
      <Redirect>...</Redirect>
   </RoutingRule>

<Condition> =
   <Condition> 
      [ <KeyPrefixEquals>...</KeyPrefixEquals> ]
      [ <HttpErrorCodeReturnedEquals>...</HttpErrorCodeReturnedEquals> ]
   </Condition>
    Note: <Condition> must have at least one child element.

<Redirect> =
   <Redirect> 
      [ <HostName>...</HostName> ]
      [ <Protocol>...</Protocol> ]
      [ <ReplaceKeyPrefixWith>...</ReplaceKeyPrefixWith>  ]
      [ <ReplaceKeyWith>...</ReplaceKeyWith> ]
      [ <HttpRedirectCode>...</HttpRedirectCode> ]
   </Redirect>

Note: <Redirect> must have at least one child element. You can have either ReplaceKeyPrefix with or ReplaceKeyWith but not both.
```

------

Tabel berikut menjelaskan elemen-elemen dalam aturan perutean.


|  Nama  |  Deskripsi  | 
| --- | --- | 
| RoutingRules |  Kontainer untuk pengumpulan RoutingRule yang berbeda.  | 
| RoutingRule |  Aturan yang mengidentifikasi kondisi dan pengalihan yang diterapkan saat kondisi terpenuhi.  Ketentuan: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/how-to-page-redirect.html)  | 
| Condition |  Kontainer untuk menjelaskan kondisi yang harus dipenuhi untuk pengalihan yang ditentukan untuk diterapkan. Jika aturan perutean tidak mencakup syarat, aturan diterapkan ke semua permintaan.  | 
| KeyPrefixEquals |  Prefiks nama kunci objek yang menjadi tujuan pengalihan permintaan.  `KeyPrefixEquals` diperlukan jika `HttpErrorCodeReturnedEquals` tidak ditentukan. Jika `KeyPrefixEquals` dan `HttpErrorCodeReturnedEquals` ditentukan, keduanya harus bernilai benar agar syarat dapat dipenuhi.  | 
| HttpErrorCodeReturnedEquals |  Kode kesalahan HTTP yang harus cocok agar pengalihan dapat diterapkan. Jika terjadi kesalahan, dan jika kode kesalahan memenuhi nilai ini, maka pengalihan yang ditentukan berlaku. `HttpErrorCodeReturnedEquals` diperlukan jika `KeyPrefixEquals` tidak ditentukan. Jika `KeyPrefixEquals` dan `HttpErrorCodeReturnedEquals` ditentukan, keduanya harus bernilai benar agar syarat dapat dipenuhi.  | 
| Redirect |  Elemen kontainer yang memberikan instruksi untuk mengalihkan permintaan. Anda dapat mengarahkan permintaan ke halaman host lain atau halaman lainnya, atau Anda dapat menentukan protokol lain yang akan digunakan. `RoutingRule` harus memiliki elemen `Redirect`. Elemen `Redirect` harus mengandung setidaknya satu dari elemen saudara berikut: `Protocol`, `HostName`, `ReplaceKeyPrefixWith`, `ReplaceKeyWith`, atau `HttpRedirectCode`.  | 
| Protocol |  Protokolnya, `http` atau `https`, untuk digunakan dalam `Location` yang dikembalikan di respons.  Jika salah satu dari saudaranya mendapat persediaan, `Protocol` tidak diperlukan.  | 
| HostName |  Nama host yang akan digunakan dalam header `Location` yang dikembalikan dalam respons. Jika salah satu dari saudaranya mendapat persediaan, `HostName` tidak diperlukan.  | 
| ReplaceKeyPrefixWith |  Prefiks nama kunci objek yang menggantikan nilai `KeyPrefixEquals` dalam permintaan pengalihan.  Jika salah satu dari saudaranya mendapat persediaan, `ReplaceKeyPrefixWith` tidak diperlukan. Perangkat ini hanya dapat disediakan jika `ReplaceKeyWith` tidak disediakan.  | 
| ReplaceKeyWith |  Kunci objek yang akan digunakan dalam header `Location` yang dikembalikan dalam respons.  Jika salah satu dari saudaranya mendapat persediaan, `ReplaceKeyWith` tidak diperlukan. Perangkat ini hanya dapat disediakan jika `ReplaceKeyPrefixWith` tidak disediakan.  | 
| HttpRedirectCode |  Kode pengalihan HTTP yang akan digunakan dalam header `Location` yang dikembalikan dalam respons. Jika salah satu dari saudaranya mendapat persediaan, `HttpRedirectCode` tidak diperlukan.  | 

#### Contoh aturan pengalihan
<a name="redirect-rule-examples"></a>

Contoh berikut ini menjelaskan tugas pengalihan umum:

**penting**  
Untuk membuat aturan pengalihan di konsol Amazon S3, Anda harus menggunakan JSON.

**Example 1: Alihkan setelah mengganti nama sebuah prefiks kunci**  
Misalkan bucket Anda berisi objek berikut:  
+ index.html
+ docs/article1.html
+ docs/article2.html
Anda memutuskan untuk mengganti nama folder dari `docs/` ke `documents/`. Setelah Anda membuat perubahan ini, Anda harus mengalihkan permintaan untuk prefiks `docs/` ke `documents/`. Misalnya, permintaan untuk `docs/article1.html` akan dialihkan ke `documents/article1.html`.  
Dalam hal ini, Anda menambahkan aturan perutean berikut ke konfigurasi situs web.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "docs/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "documents/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>docs/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyPrefixWith>documents/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 2: Alihkan permintaan untuk folder yang dihapus ke sebuah halaman**  
Misalkan Anda menghapus folder `images/` (yaitu, Anda menghapus semua objek dengan prefiks kunci `images/`). Anda dapat menambahkan aturan perutean yang mengalihkan permintaan untuk objek apa pun dengan prefiks kunci `images/` ke halaman yang diberi nama `folderdeleted.html`.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "images/"
        },
        "Redirect": {
            "ReplaceKeyWith": "folderdeleted.html"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
       <KeyPrefixEquals>images/</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>folderdeleted.html</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

**Example 3: Redirect ke domain lain dengan jalur tertentu**  
Misalkan Anda ingin mengarahkan permintaan untuk jalur tertentu ke domain lain. Misalnya, Anda ingin mengarahkan permintaan untuk `/redirect/me` ke`https://example.com/new/path`.  
Saat menggunakan keduanya `HostName` dan `ReplaceKeyWith` bersama-sama, Amazon S3 membuat URL pengalihan dengan menggabungkan nama host dan kunci pengganti dengan garis miring di antara keduanya. Oleh karena itu, Anda tidak boleh memasukkan garis miring terdepan dalam `ReplaceKeyWith` nilai. Amazon S3 secara otomatis menambahkan garis miring ke depan antara nama host dan kunci pengganti.  

```
[
    {
        "Condition": {
            "KeyPrefixEquals": "redirect/me"
        },
        "Redirect": {
            "HostName": "example.com",
            "ReplaceKeyWith": "new/path"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <KeyPrefixEquals>redirect/me</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <HostName>example.com</HostName>
      <ReplaceKeyWith>new/path</ReplaceKeyWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```
Konfigurasi ini mengalihkan permintaan untuk `https://yourbucket.s3-website-region.amazonaws.com/redirect/me` ke. `https://example.com/new/path` Perhatikan bahwa `ReplaceKeyWith` disetel ke `new/path` tanpa garis miring.

**Example 4: Redirect untuk kesalahan HTTP**  
Misalkan ketika objek yang diminta tidak ditemukan, Anda sebaiknya mengalihkan permintaan ke instans Amazon Elastic Compute Cloud (Amazon EC2). Tambahkan aturan pengalihan sehingga ketika kode status HTTP 404 (Tidak Ditemukan) dikembalikan, pengunjung situs dialihkan ke instans Amazon EC2 yang menangani permintaan tersebut.   
Contoh berikut juga memasukkan prefiks kunci objek `report-404/` dalam pengalihan. Misalnya, jika Anda meminta halaman `ExamplePage.html` dan ini mengakibatkan kesalahan HTTP 404, permintaan akan diarahkan ke halaman `report-404/ExamplePage.html` pada instans Amazon EC2 yang ditentukan. Jika tidak ada aturan perutean dan terjadi kesalahan HTTP 404, dokumen kesalahan yang ditentukan dalam konfigurasi akan dikembalikan.  

```
[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com",
            "ReplaceKeyPrefixWith": "report-404/"
        }
    }
]
```

```
  <RoutingRules>
    <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
    </Condition>
    <Redirect>
      <HostName>ec2-11-22-333-44.compute-1.amazonaws.com</HostName>
      <ReplaceKeyPrefixWith>report-404/</ReplaceKeyPrefixWith>
    </Redirect>
    </RoutingRule>
  </RoutingRules>
```

## Mengalihkan permintaan untuk objek
<a name="redirect-requests-object-metadata"></a>

Anda dapat mengalihkan permintaan untuk objek ke objek atau URL lain dengan mengatur lokasi pengalihan situs web di metadata objek tersebut. Anda mengatur pengalihan dengan menambahkan properti `x-amz-website-redirect-location` ke metadata objek tersebut. Di konsol Amazon S3, Anda menetapkan **Lokasi Pengalihan Situs Web** dalam metadata objek tersebut. Jika Anda menggunakan [API Amazon S3](#page-redirect-using-rest-api), Anda mengatur `x-amz-website-redirect-location`. Halaman web kemudian mengartikan objek sebagai pengalihan 301. 

Untuk mengarahkan permintaan ke objek lain, Anda menetapkan lokasi pengalihan ke kunci objek target. Untuk mengalihkan permintaan ke URL eksternal, Anda mengatur lokasi pengalihan ke URL yang diinginkan. Untuk informasi selengkapnya tentang pemberian metadata objek, lihat [Metadata objek yang ditentukan sistem](UsingMetadata.md#SysMetadata).

Saat Anda mengatur suatu halaman, Anda dapat menyimpan atau menghapus konten objek sumber. Misalnya, jika Anda memiliki objek `page1.html` di bucket Anda, Anda dapat mengalihkan permintaan apa pun untuk halaman ini ke objek lain, `page2.html`. Anda memiliki dua opsi:
+ Simpan konten `page1.html` dan alihkan permintaan halaman.
+ Hapus konten `page1.html` dan unggah objek zero-byte dengan nama `page1.html` untuk mengganti objek yang ada dan mengarahkan kembali permintaan halaman. 

### Menggunakan konsol S3
<a name="page-redirect-using-console"></a>

1. Buka konsol Amazon S3 di. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Di daftar **Bucket**, pilih nama bucket yang telah Anda konfigurasikan sebagai situs web statis (misalnya, `example.com`).

1. Di Bawah **Objek**, pilih objek Anda.

1. Pilih **Tindakan**, lalu pilih **Edit metadata**.

1. Pilih **Metadata**.

1. Pilih **Tambahkan Metadata**.

1. Di Bawah **Jenis**, pilih **Sistem Didefinisikan**.

1. Di **Key**, pilih **x-amz-website-redirect-location**.

1. Di **Nilai**, masukkan nama kunci objek yang ingin Anda arahkan, misalnya, `/page2.html`.

   Untuk objek lain dalam bucket yang sama, prefiks `/` pada nilai wajib diisi. Anda juga dapat mengatur nilai ke URL eksternal, misalnya, `http://www.example.com`.

1. Pilih **Edit metadata**.

### Penggunaan API REST
<a name="page-redirect-using-rest-api"></a>

Tindakan API Amazon S3 berikut mendukung header `x-amz-website-redirect-location` dalam permintaan. Amazon S3 menyimpan nilai header di metadata objek sebagai `x-amz-website-redirect-location`. 
+ [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [Mulai Unggahan Multibagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [PUT Objek-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)

Bucket yang dikonfigurasi untuk hosting situs web memiliki titik akhir situs web dan titik akhir REST. Permintaan untuk halaman yang dikonfigurasi sebagai pengalihan 301 memiliki kemungkinan hasil berikut, tergantung pada titik akhir permintaan:
+ **Titik akhir situs web spesifik wilayah–**Amazon S3 mengalihkan permintaan halaman sesuai dengan nilai properti `x-amz-website-redirect-location`. 
+ **Titik akhir REST–**Amazon S3 tidak mengalihkan permintaan halaman. Ini akan mengembalikan objek yang diminta.

Untuk informasi selengkapnya tentang titik akhir, lihat [Perbedaan utama antara titik akhir situs web dan titik akhir API REST](WebsiteEndpoints.md#WebsiteRestEndpointDiff).

Saat mengatur pengalihan halaman, Anda dapat menyimpan atau menghapus konten objek. Misalnya, anggap bahwa Anda memiliki objek `page1.html` tersebut dalam bucket Anda.
+ Untuk menyimpan konten `page1.html` dan hanya mengalihkan permintaan halaman, Anda dapat mengirimkan permintaan [PUT Objek-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) untuk membuat objek `page1.html` yang menggunakan objek `page1.html` yang sudah ada sebagai sumbernya. Dalam permintaan Anda, Anda menetapkan header `x-amz-website-redirect-location`. Ketika permintaan selesai, Anda akan memiliki halaman asli dengan konten yang tidak berubah, tetapi Amazon S3 akan mengalihkan semua permintaan halaman untuk halaman tersebut ke lokasi pengalihan yang Anda tentukan.
+ Untuk menghapus konten objek `page1.html` dan mengalihkan permintaan untuk halaman, Anda dapat mengirim permintaan PUT Objek untuk mengunggah objek nol-byte yang memiliki kunci objek yang sama: `page1.html`. Dalam permintaan PUT, Anda menetapkan `x-amz-website-redirect-location` untuk `page1.html` ke objek baru. Setelah permintaan selesai, `page1.html` tidak memiliki konten, dan permintaan diarahkan kembali ke lokasi yang ditentukan oleh `x-amz-website-redirect-location`.

Saat Anda mengambil objek menggunakan tindakan [GET Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) bersama dengan metadata objek lain, Amazon S3 mengembalikan header `x-amz-website-redirect-location` di dalam respons.