Якщо ви зіткнулися з неочікуваним перенаправленням 301 або 302 у Magento 2 і не знаєте, чому це відбувається або який код це викликає, ви можете легко виявити це, тимчасово відредагувавши такі файли:

/vendor/magento/framework/HTTP/PhpEnvironment/Response.php
/vendor/magento/framework/Controller/Result/Redirect.php

Відкрийте Response.php та додайте наступний рядок на початок функції setRedirect :

var_dump($url); \Magento\Framework\Debug::backtrace(false, true, false); exit();

Приклад:

public function setRedirect($url, $code = 302)
{ var_dump($url); \Magento\Framework\Debug::backtrace(false, true, false); exit();
$this->setHeader('Location', $url, true)
      ->setHttpResponseCode($code);

return $this;
}

Тепер відкрийте другий файл Redirect.php та додайте це:

var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit();

після кожного рядка, що містить:

$this->url = 

Приклад:

public function setRefererUrl()
{
    $this->url = $this->redirect->getRefererUrl();
    var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit(); 
    return $this;
}

public function setRefererOrBaseUrl()
{
    $this->url = $this->redirect->getRedirectUrl();
    var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit(); 
    return $this;
}

public function setUrl($url)
{
    $this->url = $url;
    var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit(); 
    return $this;
}

public function setPath($path, array $params = [])
{
    $this->url = $this->urlBuilder->getUrl($path, $this->redirect->updatePathParams($params));
    var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit(); 
    return $this;
}

Збережіть зміни та відкрийте сторінку, яка викликає неочікуване перенаправлення. Ви повинні побачити зворотне трасування налагодження з інформацією про рядок коду, що викликає перенаправлення.

Якщо ви його не бачите, це означає, що перенаправлення спричинене не кодом Magento, а налаштуваннями веб-сервера або кодом стороннього модуля, який використовує нерекомендовані практики програмування Magento.