# dokumentasi Django 2.0.8

# Aplikasi pengalihan

Django comes with an optional redirects application. It lets you store simple redirects in a database and handles the redirecting for you. It uses the HTTP response status code `301 Moved Permanently` by default.

## Pemasangan

Untuk memasang aplikasi pengalihan, ikuti langkah-langkah ini:

1. Pastikan bahwa kerangka kerja `django.contrib.sites` is installed.
2. Tambah pengaturan `'django.contrib.redirects'` to your `INSTALLED_APPS`.
3. Tambah `'django.contrib.redirects.middleware.RedirectFallbackMiddleware'` ke pengaturan `MIDDLEWARE` anda.
4. Jalankan perintah `manage.py migrate`.

## Bagaimana itu bekerja

`manage.py migrate` creates a `django_redirect` table in your database. This is a simple lookup table with `site_id`, `old_path` and `new_path` fields.

`RedirectFallbackMiddleware` melakukan semua dari pekerjaan. Setiap kali aplikasi Django apapun memunculkan kesalahan 404, middleware ini memeriksa pengalihan basisdata untuk URL diminta sebagai usaha terakhir. Khususnya, itu memeriksa untuk pengalihan dengan diberikan `old_path` dengan ID situs yang berhubungan pada pengaturan `SITE_ID`.

- If it finds a match, and `new_path` is not empty, it redirects to `new_path` using a 301 ("Moved Permanently") redirect. You can subclass `RedirectFallbackMiddleware` and set `response_redirect_class` to `django.http.HttpResponseRedirect` to use a `302 Moved Temporarily` redirect instead.
- Jika itu menemukan kecocokan, dan `new_path` adalah kosong, itu mengirim sebuah 410 ("Gone") kepala HTTP dan tanggapan (kurang-isi) kosong.
- Jika itu tidak menemukan kecocokan, permintaan berlanjut untuk diolah seperti biasa.

Middleware hanya dapat diaktifasikan untuk 404 -- bukan untuk 500 atau tanggapan kode keadaan apapun lainnya.

Note that the order of `MIDDLEWARE` matters. Generally, you can put `RedirectFallbackMiddleware` at the end of the list, because it's a last resort.

Untuk lebih pada middleware, baca dokumentasi middleware.

## Bagaimana menambah, merubah dan menghapus pengalihan

### Melalui antarmuka admin

Jika anda telah mengaktifkan antarmuka admin Django otomatis, anda harus melihat bagian "Redirects" pada halaman indeks admin. Sunting pengalihan ketika anda menyunting obyek lain apapun di sistem.

### Melalui API Python

class `models.``Redirect`

  Pengalihan adalah diwakili oleh Django model standar, yang tinggal di django/contrib/redirects/models.py. Anda dapat mengakses pengalihan obyek melalui Django database API.

## Middleware

class `middleware.``RedirectFallbackMiddleware`

  Anda dapat merubah kelas-kelas `HttpResponse` digunakan oleh middleware dengan membuat sebuah subkelas dari `RedirectFallbackMiddleware` dan terutama `response_gone_class` dan/atau `response_redirect_class`.

  `response_gone_class`

    Kelas `HttpResponse` digunakan ketika `Redirect` tidak ditemukan untuk jalur yang diminta atau mempunyai nilai `new_path` kosong.

    Awalan pada `HttpResponseGone`.

  `response_redirect_class`

    Kelas `HttpResponse` yang mengangani pengalihan.

    Awalan pada `HttpResponsePermanentRedirect`.