{"title":"Aplikasi pengalihan","version":"1.10","locale":"id","docname":"ref/contrib/redirects","url":"/id/1.10/ref/contrib/redirects/","canonical":"https://djangodocs.dev/id/1.10/ref/contrib/redirects/","summary":"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…","html":"<span id=\"the-redirects-app\"></span><h1>Aplikasi pengalihan<a class=\"heading-anchor\" href=\"#module-django.contrib.redirects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django comes with an optional redirects application. It lets you store simple\nredirects in a database and handles the redirecting for you. It uses the HTTP\nresponse status code <code class=\"docutils literal notranslate\"><span class=\"pre\">301</span> <span class=\"pre\">Moved</span> <span class=\"pre\">Permanently</span></code> by default.</p>\n<section id=\"installation\">\n<h2>Pemasangan<a class=\"heading-anchor\" href=\"#installation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Untuk memasang aplikasi pengalihan, ikuti langkah-langkah ini:</p>\n<ol class=\"arabic simple\">\n<li><p>Pastikan bahwa kerangka kerja <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.sites</span></code> <a class=\"reference internal\" href=\"/id/1.10/ref/contrib/sites/#enabling-the-sites-framework\"><span class=\"std std-ref\">is installed</span></a>.</p></li>\n<li><p>Tambah pengaturan <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.redirects'</span></code> to your <a class=\"reference internal\" href=\"/id/1.10/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a>.</p></li>\n<li><p>Tambah <code class=\"docutils literal notranslate\"><span class=\"pre\">'django.contrib.redirects.middleware.RedirectFallbackMiddleware'</span></code> ke pengaturan <a class=\"reference internal\" href=\"/id/1.10/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> anda.</p></li>\n<li><p>Jalankan perintah <a class=\"reference internal\" href=\"/id/1.10/ref/django-admin/#django-admin-migrate\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">migrate</span></code></a>.</p></li>\n</ol>\n</section>\n<section id=\"how-it-works\">\n<h2>Bagaimana itu bekerja<a class=\"heading-anchor\" href=\"#how-it-works\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">migrate</span></code> creates a <code class=\"docutils literal notranslate\"><span class=\"pre\">django_redirect</span></code> table in your database. This\nis a simple lookup table with <code class=\"docutils literal notranslate\"><span class=\"pre\">site_id</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">old_path</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">new_path</span></code> fields.</p>\n<p>The <a class=\"reference internal\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RedirectFallbackMiddleware</span></code></a>\ndoes all of the work. Each time any Django application raises a 404\nerror, this middleware checks the redirects database for the requested\nURL as a last resort. Specifically, it checks for a redirect with the\ngiven <code class=\"docutils literal notranslate\"><span class=\"pre\">old_path</span></code> with a site ID that corresponds to the\n<a class=\"reference internal\" href=\"/id/1.10/ref/settings/#std-setting-SITE_ID\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SITE_ID</span></code></a> setting.</p>\n<ul class=\"simple\">\n<li><p>If it finds a match, and <code class=\"docutils literal notranslate\"><span class=\"pre\">new_path</span></code> is not empty, it redirects to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">new_path</span></code> using a 301 (&quot;Moved Permanently&quot;) redirect. You can subclass\n<a class=\"reference internal\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RedirectFallbackMiddleware</span></code></a>\nand set\n<a class=\"reference internal\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_redirect_class\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_redirect_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">response_redirect_class</span></code></a>\nto <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.http.HttpResponseRedirect</span></code></a> to use a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">302</span> <span class=\"pre\">Moved</span> <span class=\"pre\">Temporarily</span></code> redirect instead.</p></li>\n<li><p>Jika itu menemukan kecocokan, dan <code class=\"docutils literal notranslate\"><span class=\"pre\">new_path</span></code> adalah kosong, itu mengirim sebuah 410 (&quot;Gone&quot;) kepala HTTP dan tanggapan (kurang-isi) kosong.</p></li>\n<li><p>If it doesn't find a match, the request continues to be processed as\nusual.</p></li>\n</ul>\n<p>The middleware only gets activated for 404s -- not for 500s or responses of any\nother status code.</p>\n<p>Note that the order of <a class=\"reference internal\" href=\"/id/1.10/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> matters. Generally, you can put\n<a class=\"reference internal\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RedirectFallbackMiddleware</span></code></a> at the\nend of the list, because it's a last resort.</p>\n<p>Untuk lebih pada middleware, baca <a class=\"reference internal\" href=\"/id/1.10/topics/http/middleware/\"><span class=\"doc\">dokumentasi middleware</span></a>.</p>\n</section>\n<section id=\"how-to-add-change-and-delete-redirects\">\n<h2>Bagaimana menambah, merubah dan menghapus pengalihan<a class=\"heading-anchor\" href=\"#how-to-add-change-and-delete-redirects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"via-the-admin-interface\">\n<h3>Melalui antarmuka admin<a class=\"heading-anchor\" href=\"#via-the-admin-interface\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Jika anda telah mengaktifkan antarmuka admin Django otomatis, anda harus melihat bagian &quot;Redirects&quot; pada halaman indeks admin. Sunting pengalihan ketika anda menyunting obyek lain apapun di sistem.</p>\n</section>\n<section id=\"via-the-python-api\">\n<h3>Melalui API Python<a class=\"heading-anchor\" href=\"#via-the-python-api\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.redirects.models.Redirect\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">models.</span></span><span class=\"sig-name descname\"><span class=\"pre\">Redirect</span></span><a class=\"heading-anchor\" href=\"#django.contrib.redirects.models.Redirect\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Pengalihan adalah diwakili oleh <a class=\"reference internal\" href=\"/id/1.10/topics/db/models/\"><span class=\"doc\">Django model</span></a> standar, yang tinggal di <a class=\"reference external\" href=\"https://github.com/django/django/blob/master/django/contrib/redirects/models.py\">django/contrib/redirects/models.py</a>. Anda dapat mengakses pengalihan obyek melalui <a class=\"reference internal\" href=\"/id/1.10/topics/db/queries/\"><span class=\"doc\">Django database API</span></a>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"middleware\">\n<h2>Middleware<a class=\"heading-anchor\" href=\"#middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">middleware.</span></span><span class=\"sig-name descname\"><span class=\"pre\">RedirectFallbackMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Anda dapat merubah kelas-kelas <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> digunakan oleh middleware dengan membuat sebuah subkelas dari <a class=\"reference internal\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RedirectFallbackMiddleware</span></code></a> dan terutama <code class=\"docutils literal notranslate\"><span class=\"pre\">response_gone_class</span></code> dan/atau <code class=\"docutils literal notranslate\"><span class=\"pre\">response_redirect_class</span></code>.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_gone_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">response_gone_class</span></span><a class=\"heading-anchor\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_gone_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> digunakan ketika <a class=\"reference internal\" href=\"#django.contrib.redirects.models.Redirect\" title=\"django.contrib.redirects.models.Redirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Redirect</span></code></a> tidak ditemukan untuk jalur yang diminta atau mempunyai nilai <code class=\"docutils literal notranslate\"><span class=\"pre\">new_path</span></code> kosong.</p>\n<p>Awalan pada <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponseGone\" title=\"django.http.HttpResponseGone\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseGone</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_redirect_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">response_redirect_class</span></span><a class=\"heading-anchor\" href=\"#django.contrib.redirects.middleware.RedirectFallbackMiddleware.response_redirect_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Kelas <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> yang mengangani pengalihan.</p>\n<p>Awalan pada <a class=\"reference internal\" href=\"/id/1.10/ref/request-response/#django.http.HttpResponsePermanentRedirect\" title=\"django.http.HttpResponsePermanentRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponsePermanentRedirect</span></code></a>.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"module-django.contrib.redirects","toc":[{"title":"Pemasangan","anchor":"installation","children":[]},{"title":"Bagaimana itu bekerja","anchor":"how-it-works","children":[]},{"title":"Bagaimana menambah, merubah dan menghapus pengalihan","anchor":"how-to-add-change-and-delete-redirects","children":[{"title":"Melalui antarmuka admin","anchor":"via-the-admin-interface","children":[]},{"title":"Melalui API Python","anchor":"via-the-python-api","children":[]}]},{"title":"Middleware","anchor":"middleware","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Acuan API","url":"/id/1.10/ref/"},{"docname":"ref/contrib/index","title":"Paket contrib","url":"/id/1.10/ref/contrib/"}],"prev":{"docname":"ref/contrib/postgres/validators","title":"Pengesah","url":"/id/1.10/ref/contrib/postgres/validators/"},"next":{"docname":"ref/contrib/sitemaps","title":"Kerangka peta situs","url":"/id/1.10/ref/contrib/sitemaps/"},"formats":{"html":"/id/1.10/ref/contrib/redirects/","markdown":"/id/1.10/ref/contrib/redirects.md","json":"/id/1.10/ref/contrib/redirects.json"},"source":"https://github.com/django/django/blob/stable/1.10.x/docs/ref/contrib/redirects.txt","official":"https://docs.djangoproject.com/id/1.10/ref/contrib/redirects/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es","el","pl"]}