Pembaruan: Masalah Drupal # 1796596 dilakukan sejak Redirect 1.0-rc2 (Juni 2015). Solusi yang tepat untuk masalah ini sekarang adalah meng-upgrade ke rilis stabil terbaru dari modul Redirect, dan kemudian menjalankan pembaruan basis data. Setiap pengalihan lingkaran yang Anda miliki akan dibersihkan dengan aman.
Masalah ini muncul karena bug dalam modul pengalihan. Anda memicu dengan mengubah URL halaman (atau mungkin hanya judulnya, jika Anda menggunakan pathauto) dan kemudian mengubahnya kembali seperti semula.
Sebagai contoh, katakanlah saya memiliki halaman bernama "perusahaan" dan saya mengubah judul menjadi "Perusahaan kami" (yang mengubah URL alias menjadi perusahaan kami). Kemudian saya memutuskan bahwa saya sebenarnya memilihnya dengan cara pertama sehingga saya mengedit simpul lagi dan mengubah judul kembali menjadi "Perusahaan". Pada saat itu pesan kesalahan " Ups, sepertinya permintaan ini mencoba membuat loop tak terbatas. Kami tidak mengizinkan hal-hal seperti itu di sini. Kami adalah situs web profesional! " Akan mulai muncul di halaman Perusahaan.
Ada tiga cara untuk memperbaikinya, tergantung pada apa yang paling mudah bagi Anda. Mereka berkisar dalam kesulitan / keberanian dari atas ke bawah.
Metode Drupal / PHP
Ada bug Drupal yang panjang pada subjek: Masalah # 1796596 dan ada tambalan yang berfungsi baik yang memperbaiki masalah dalam komentar # 124 .
Semoga perbaikan ini akan segera masuk ke modul Redirect untuk diunduh. Namun sudah lebih dari setahun sekarang tanpa ada tanda-tanda kemajuan di depan itu.
Metode SQL
Perbaikan tercepat untuk masalah ini adalah dengan query SQL ke database, dengan sesuatu seperti di bawah ini. HATI - HATI dan hanya coba metode ini jika Anda tahu apa yang Anda lakukan - cobalah pada pengembangan salinan situs pertama dan pastikan Anda memiliki cadangan dan menguji perubahan setelah itu jika Anda perlu memutar kembali. Berhati-hatilah dan uji kueri pertama dengan sangat baik jika Anda menggunakan i18n ... Jalankan kueri pertama untuk menunjukkan apa yang akan dihapus dan yang kedua untuk benar-benar melakukan penghapusan.
--Show records to be deleted:
SELECT r.rid, r.language, r.source, r.redirect
FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
--Delete redirects shown in above query:
DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
Jika Anda tidak tahu cara menerapkan tambalan atau menjalankan kueri SQL, maka Anda harus memperbaiki masalah secara manual. Jangan khawatir, ini sebenarnya cukup mudah dilakukan (tetapi memakan waktu dibandingkan dengan metode lain):
Metode Manual:
Untuk setiap halaman tempat pesan peringatan ditampilkan:
- Edit halaman
- Gulir ke bagian bawah formulir edit
- Perhatikan URL utama halaman. Itu ditampilkan di bawah "pengaturan jalur URL", misalnya "Alias: company" akan berarti URL halaman adalah "perusahaan". Anda dapat mengklik "Pengaturan Jalur URL" untuk mengunjungi bagiannya dan mengonfirmasi alias URL jika Anda tidak yakin.
- Sekarang klik "URL redirect". Pengalihan ke halaman saat ini akan ditampilkan. Akan ada setidaknya satu pengalihan yang sama dengan alias URL yang Anda catat di langkah 3. Mungkin lebih dari satu pengalihan dalam daftar ini akan cocok dengan alias URL.
- Hapus semua arahan ulang yang sama dengan alias URL. Ini adalah data masalah yang menyebabkan perulangan dan pesan kesalahan ditampilkan.
- Setelah tidak ada lagi pengalihan di bawah "Pengalihan URL" yang sama persis dengan alias halaman masalah di bawah pengaturan jalur URL, pesan kesalahan akan hilang.