Singkirkan pengalihan 301

Saya telah memprogram pengalihan 301 palsu di .htaccess

Karena bersifat permanen, browser/proxy saya selalu mengarahkan saya ke alamat palsu, meskipun saya mengubah alamat lokasi pengalihan di .htaccess

Bagaimana cara menghilangkan pengalihan 301 lama/salah ini?

Pengaturannya jelas: Saya tahu cara 301 di .htacces dengan mod_rewrite. Saya ingin membatalkan-301


person yunzen    schedule 11.05.2012    source sumber
comment
Cache browser 301 dialihkan secara lokal untuk setiap URI Anda sehingga Anda harus menghapus cache browser Anda secara manual. Namun jika Anda ingin melakukan ini untuk semua klien Anda maka saya kira Anda perlu memberitahu browser tersebut untuk membatalkan cache mereka untuk semua halaman Anda yang terpengaruh.   -  person anubhava    schedule 11.05.2012
comment
Silakan periksa: stackoverflow.com/ question/9131037/ untuk membatalkan validasi cache browser.   -  person anubhava    schedule 11.05.2012
comment
@anubhava: itu tidak membantu dalam kasus ini - mereka mengubah URL konten - yunzen ingin mengubah konten dan mempertahankan URL   -  person symcbean    schedule 11.05.2012
comment
@symcbean Tanpa mengubah URI BASE, OP dapat menambahkan parameter kueri tiruan untuk memaksa browser mengambilnya lagi dari server.   -  person anubhava    schedule 11.05.2012
comment
@anubhava: ini masih mengubah URL   -  person symcbean    schedule 12.05.2012
comment
@symcbean: Mungkin Anda tidak membaca komentar saya dengan cermat :) Saya baru saja menulis Without changing the BASE URI. Tentu saja URL akan berubah dengan parameter kueri tiruan yang dapat diabaikan dalam kode.   -  person anubhava    schedule 12.05.2012
comment
Id Symcbean benar. Ini adalah url yang diiklankan di media cetak. Saya tidak dapat menambahkan parameter URL.   -  person yunzen    schedule 12.05.2012


Jawaban (2)


Ini tidak bergantung pada konfigurasi server Anda karena browser/proxy memutuskan menanyakan halaman web Anda atau menggunakan pengalihan cache. Anda sebaiknya membersihkan (atau mematikan) cache di browser/proxy yang Anda bicarakan. Jika Anda tidak bisa melakukannya, tunggu saja hingga batas waktu cache habis (yang bergantung pada pengaturan proxy) berakhir.

person Maksym Polshcha    schedule 11.05.2012
comment
Berapa rata-rata waktu yang dibutuhkan proxy untuk menyegarkan? - person yunzen; 12.05.2012
comment
@yunzen Tidak ada petunjuk. Tergantung pada pengaturannya. - person Maksym Polshcha; 12.05.2012

Itu bisa dilakukan di htaccess dengan mod_redirect dan mod_header.

Ajaibnya adalah, Anda dapat menyetel variabel lingkungan dengan pengubah [E] di Rewrite dan menyetel header non-cache jika variabel lingkungan disetel.

Ini kodenya

RewriteCond %{HTTP_HOST} !^mark\.koli\.ch [NC]
## the [E=nocache:1] modifier sets the environment variable "nocache"
RewriteRule ^/(.*)$ http://mark.koli.ch/$1 [R=301,L,E=nocache:1]

## Set the response header if the "nocache" environment variable is set
## in the RewriteRule above.
Header always set Cache-Control "no-store, no-cache, must-revalidate" env=nocache

## Set Expires too ...
Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=nocache

Terima kasih kepada Mark S. Kolich di entri blog

Tentu saja hal ini harus dilakukan sebelum pengalihan dilakukan. Jadi setelah ini setiap pengalihan 301 tidak di-cache dan dapat diubah tanpa masalah.

Bahkan mungkin untuk mengatur Variabel Lingkungan dengan PHP melalui apache_setenv.

person yunzen    schedule 07.05.2014