Bagaimana mencegah pengalihan otomatis?


16

Wordpress memiliki fitur di mana ia akan secara otomatis mengarahkan ulang URL Anda jika itu dianggap salah ditulis. Berikut ini sebuah contoh: Saya memiliki halaman yang disebutmy-page

Jika saya pergi ke:

www.mysite.com/something/my-page/

itu akan segera mengarahkan saya ke

www.mysite.com/my-page/

karena tidak ada yang ada di URL pertama.

Bagaimana saya bisa mematikan fitur ini, dan sebagai gantinya hanya mendapatkan 404 jika salah ketik URL?


Jika Anda menonton apa yang terjadi (melalui HttpFox atau WireShark atau paket sniffer serupa), halaman-halaman tersebut akan dialihkan dengan Status 301 - Dipindahkan Secara Permanen - yang merupakan perilaku yang sesuai. Ini membantu mesin pencari menjaga database mereka tetap terkini di antara hal-hal lain, dan pengalihan membantu pengguna menemukan halaman. Ini dapat mempengaruhi bagaimana WordPress menangani hal-hal ketika Anda benar-benar memindahkan halaman atau mengubah permalink, jadi berhati-hatilah. Pokoknya, pilihan Anda tetapi saya tidak yakin itu ide yang bagus.
s_ha_dum

Saya tahu itu hal yang baik, saya mengerti itu. Namun, saya memiliki kasus penggunaan tertentu di mana saya tidak memerlukan perilaku itu. Saya sedang mengembangkan plugin yang menangani pengalihan URL dan jadi saya ingin mengganti perilaku itu.
Mazatec

Berikut ini jawaban yang lebih benar: tautan
Binod - GoFundMonica

Jawaban:


23

Ini bekerja untuk saya:

remove_action('template_redirect', 'redirect_canonical');

Bisakah Anda membimbing saya untuk apa yang akan dilakukannya? apa redirect kanonik? Saya baru
mengenal

Anda baru saja menyelamatkan saya dari banyak sakit kepala! Terima kasih ! :-D
Jenski

1
Apakah tidak ada tempat di mana kita dapat melihat pengalihan ini sehingga kita dapat menghapusnya satu per satu?
Shane Jones

Ini bagus. Apakah Anda tahu mengapa wp-adminmungkin masih mengarahkan setelah menggunakan ini?
Gezim

Anda dapat menemukan penjelasan terperinci tentang masalah ini di dev4press.com/blog/wordpress/2015/…
ronnefeldt

5

Seperti yang disarankan Ash, Anda dapat mematikan fitur dengan menggunakan kode berikut:

remove_action('template_redirect', 'redirect_canonical');

Dalam melihat fungsi redirect_canonical di canonical.php, akan muncul Anda juga dapat memodifikasi perilaku dengan filter Anda sendiri.

Di akhir fungsi redirect_canonical (), ada panggilan untuk memfilter jawaban akhir:

$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );

Jadi Anda dapat menulis filter Anda sendiri untuk mengubah pengalihan akhir atau mengembalikan nol untuk menghentikan pengalihan, berdasarkan input, sehingga mematikan fitur untuk URL tertentu atau subset dari URL.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.