先前遇到一個案例,如果登入後到首頁,就會出現 ERR_TOO_MANY_REDIRECTS 錯誤訊息,但未登入時就沒事。因為只有登入才會有問題,於是就擱置暫不處理。
但後來更新 Drupal core 之後,連未登入也都會出現 ERR_TOO_MANY_REDIRECTS 了,於是直接用關鍵字搜尋,就找到 ERR_TOO_MANY_REDIRECTS,並指引到 Infinite redirect loop when route_normalizer_enabled is true 說明確切的發生原因。
主要原因應該是使用 Redirect 設置重導向頁面,然後其中有部分設置到連回首頁(/)的重導向設置錯誤了,於是造成無限重導向的結果。
此問題可以透過關閉「Enforce clean and canonical URLs」選項來解決,或是可以用 drush 指令,如下
drush cset redirect.settings route_normalizer_enabled 0