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:
Pastikan bahwa kerangka kerja
django.contrib.sites
is installed.Tambah pengaturan
'django.contrib.redirects'
to yourINSTALLED_APPS
.Tambah
'django.contrib.redirects.middleware.RedirectFallbackMiddleware'
ke pengaturanMIDDLEWARE
anda.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.
The RedirectFallbackMiddleware
does all of the work. Each time any Django application raises a 404
error, this middleware checks the redirects database for the requested
URL as a last resort. Specifically, it checks for a redirect with the
given old_path
with a site ID that corresponds to the
SITE_ID
setting.
- If it finds a match, and
new_path
is not empty, it redirects tonew_path
using a 301 (“Moved Permanently”) redirect. You can subclassRedirectFallbackMiddleware
and setresponse_redirect_class
todjango.http.HttpResponseRedirect
to use a302 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.- If it doesn’t find a match, the request continues to be processed as usual.
The middleware only gets activated for 404s – not for 500s or responses of any other status code.
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 dariRedirectFallbackMiddleware
dan terutamaresponse_gone_class
dan/atauresponse_redirect_class
.-
response_gone_class
¶ Kelas
HttpResponse
digunakan ketikaRedirect
tidak ditemukan untuk jalur yang diminta atau mempunyai nilainew_path
kosong.Awalan pada
HttpResponseGone
.
-
response_redirect_class
¶ Kelas
HttpResponse
yang mengangani pengalihan.Awalan pada
HttpResponsePermanentRedirect
.
-