Apa penyebab kesalahan “Front controller mencapai 100 router match iterations”?

14

Sebagai pengembang Magento, saya telah menghadapi masalah ini berkali-kali, saya tahu ini adalah masalah konfigurasi yang salah ketika terjadi beberapa modul tidak dimuat, juga router mereka, yang menyebabkan kesalahan. Sebagian besar waktu diselesaikan tanpa tindakan, di lain waktu Anda dapat membersihkan cache

Saya sudah membaca banyak posting tentang ini, mencoba men-debug menempatkan beberapa kode tambahan di Magento core Front controller app/code/core/Mage/Core/Controller/Varien/Front.php, tetapi pada akhirnya ini hanya menunjukkan router modul mana yang hilang, bukan mengapa mereka tidak dimuat. Setiap kali itu terjadi saya mencoba untuk melihat URL mana yang memberikan kesalahan, tetapi ini adalah informasi yang tidak berguna, sama dengan jejak kode. Itu selalu sama

Mungkin itu disebabkan oleh konflik modul? Mungkin itu adalah tugas cron melakukan sesuatu yang salah? Mungkin beberapa kode salah dalam versi Magento yang lebih lama? Masalahnya adalah masalah ini tidak terjadi sejak versi 1.7 (atau jika itu terjadi maka itu benar-benar sporadis). Saya telah menemukan beberapa perbedaan kode dalam aliran utama, seperti

Mage::register('application_params', $params);

Dalam menjalankan () metode app/code/core/Mage/Core/Model/App.php, atau

$this->_shouldSkipProcessModulesUpdates()

periksa metode _initModules () ...

Saya ingin percaya bahwa harus ada seseorang yang secara pasti menemukan penyebabnya. Ada tips?

Raul Sanchez
sumber
1
Sudahkah Anda merujuk ini? github.com/convenient/…
Tim Hallman
1
Poster artikel itu dapat memperbaiki masalah mereka dengan mengesampingkan Mage_Core_Model_Configdan memaksa$_useCache = false
Tim Hallman
1
Setelah membaca seluruh artikel, saya pikir Anda harus memposting itu sebagai jawaban yang tepat untuk pertanyaan saya, sehingga pengguna lain dapat membacanya. Terima kasih
Raul Sanchez

Jawaban:

12

Tampaknya Anda mengalami bug konfigurasi Magento.

Ada solusi penulisan yang sangat baik di sini .

Dalam artikel itu penulis dapat memperbaiki bug dengan mengesampingkan Mage_Core_Model_Configdan memaksa $_useCache = falseketika membuat ulang konfigurasi.

Tim Hallman
sumber
4
Sial! Saya tidak pernah dapat menuai perwakilan untuk artikel itu, orang lain selalu menautkannya terlebih dahulu;)
Luke Rodgers
3
Langgan @LukeRodgers sangat bagus!
Tim Hallman
5
Saya hanya ingin berkomentar dan mengatakan bahwa Magento telah menerima ini sebagai perbaikan untuk masalah dengan SUPEE-4755 github.com/convenient/…
Luke Rodgers
2
Saya juga telah menambahkan tambalan lain. Tidak sebagus itu, tetapi dibahas di sini. github.com/convenient/…
Luke Rodgers
Saya menghadapi masalah ini di Magento 2 CE Versi 2.1.0. Itu harus diperbaiki kan karena itu masalah lama?
Ankit Shah
6

Periksa pengaturan konfigurasi Magento, URL Non-rute Default di

Sistem> Konfigurasi> Web> Halaman Default
. Harus ditetapkan nilai cms / index / noRoute default . Periksa nilai toko tertentu juga apakah nilai defaultnya telah ditimpa di sini. Magento dapat masuk ke loop tak terbatas hingga mencapai batas iterasi 100 jika tidak diatur dengan benar.

Jika Anda menggunakan Magerun , jalankan perintah ini.

magerun config:set cms/index/noRoute no-route

Saya telah menemukan solusinya di sini, ini adalah masalah dalam kasus saya. Anda dapat memeriksa URL untuk opsi lain.

https://merchantprotocol.com/506/solved-front-controller-reached-100-router-match-iterations/

Sandipan S
sumber
Jika saya menjalankan ./n98-magerun.phar config: dapatkan no-route maka saya tidak dapat menemukan nilai konfigurasi untuk "no-route", dan entri konfigurasi bahkan tidak ada, apakah Anda yakin dengan jawaban Anda?
Hitam
1
@ Tapi kamu salah melakukannya. metode konsol get memerlukan path - jadi perintah Anda seharusnya - \ n "n98-magerun.phar config: get cms / index / noRoute" \ n Silakan periksa opsi bantuan dengan menjalankan "n98-magerun.phar config: get - help "
Sandipan S