Setidaknya dua browser - Chrome dan Firefox - akan men-cache 301 redirect tanpa tanggal kedaluwarsa .
Artinya, itu akan tetap di-cache selama cache browser dapat menampungnya. Itu akan dihapus dari cache jika Anda menghapus cache secara manual, atau jika entri cache dibersihkan untuk memberikan ruang bagi yang baru.
Anda dapat memverifikasi ini setidaknya di Firefox dengan masuk ke about:cache
dan menemukannya di bawah cache disk.
Saya tidak tahu tentang perilaku browser lain, seperti IE10 / IE11. Namun, mengingat peramban lain melakukan cache secara tidak terbatas, Anda tetap harus mengakomodasi ini.
Di semua browser, termasuk Chrome / Firefox masih mungkin untuk menimpa perilaku default ini menggunakan header, seperti dijelaskan di bawah ini:
Catatan: jawaban ini ditulis pada tahun 2014 dan perilaku browser dapat berubah seiring waktu.
Jika Anda tidak ingin pengalihan di-cache
Caching tidak terbatas ini hanya caching default oleh browser ini jika tidak ada header Kontrol-Cache. Logikanya adalah bahwa Anda menentukan pengalihan "permanen" dan tidak memberi mereka instruksi caching lainnya, sehingga mereka akan memperlakukannya seolah-olah Anda ingin itu di-cache tanpa batas waktu.
Browser masih menghormati header Kontrol-Cache dan Kedaluwarsa seperti dengan respons lainnya, jika ditentukan.
Anda dapat menambahkan tajuk seperti Cache-Control: max-age=3600
atau Expires: Thu, 01 Dec 2014 16:00:00 GMT
ke pengalihan 301 Anda. Anda bahkan bisa menambahkan Cache-Control: no-cache
sehingga tidak akan di-cache secara permanen oleh browser atau Cache-Control: no-store
bahkan tidak dapat disimpan dalam penyimpanan sementara oleh browser.
Alternatif yang lebih baik menurut saya adalah menggunakan redirect 302 atau 307. Ini tidak menyiratkan ke browser atau cache bahwa mereka adalah pengalihan "permanen" dan karenanya tidak boleh di-cache dalam absennya header Kontrol-Cache.
Bagi saya, sepertinya mengeluarkan 301 redirect tetapi menandainya sebagai non-cacheable bertentangan dengan semangat untuk apa 301 redirect diperuntukkan, meskipun mungkin secara teknis valid. YMMV, dan Anda mungkin menemukan kasus tepi di mana masuk akal untuk pengalihan "permanen" untuk memiliki batas waktu.
Jika sebelumnya Anda mengeluarkan 301 redirect tetapi ingin membatalkannya
Jika orang masih memiliki cache redirect 301 di browser mereka, mereka akan terus dibawa ke halaman target terlepas dari apakah halaman sumber masih memiliki redirect di tempat. Pilihan Anda untuk memperbaiki ini termasuk:
Solusi paling sederhana dan terbaik adalah dengan mengeluarkan 301 redirect kembali.
Peramban akan menyadari bahwa ia diarahkan kembali ke apa yang sebelumnya dianggap sebagai URL yang dinonaktifkan, dan ini akan menyebabkannya mengambil kembali URL itu lagi untuk mengonfirmasi bahwa pengalihan yang lama belum ada.
Sunting: beberapa komentar meragukan hal ini, lihat di bawah.
Jika Anda tidak memiliki kendali atas situs tempat target pengalihan sebelumnya, maka Anda tidak beruntung. Coba dan minta pemilik situs untuk mengarahkan kembali kepada Anda.
Juga pencegahan lebih baik daripada mengobati - hindari pengalihan 301 jika Anda tidak yakin ingin secara permanen menghapus URL yang lama.