Популярные результаты поиска Magento - Как заставить их делать 301 переадресацию при установке перенаправления в Admin - PullRequest
1 голос
/ 09 мая 2011

Похоже, что я обнаружил проблему с популярными результатами поиска magento, но я схожу с ума, пытаясь заставить их перенаправить правильно.

Хорошо, вот ситуация.Я не против популярных поисковых запросов Magento в индексе SE.Часто клиент вводит что-то, что может быть полезно для поиска.Моя проблема в том, что клиент вводит в строку поиска те же термины, что и категория или товары.Это создает проблемы с дублированием контента, поэтому я перенаправляю эти термины запроса в Magento Admin.

Однако эти перенаправления представляют собой 302 временных перенаправления, когда они действительно должны быть 301.

Я обнаружил файл в Mage> CatalogSearch> controllers> ResultController.php, в котором есть следующий код в строке65

if ($query->getRedirect()){
                $query->save();
                $this->getResponse()->setRedirect($query->getRedirect());                    
                return;
            } 

Я думаю, что где-то здесь должен быть -> setHttpResponseCode (301)

Но пока я нигде не могу получить ответ 301 перенаправления.

Конечно, я могу сделать это в htaccess, но было бы намного проще, если бы он был установлен программно.

1 Ответ

1 голос
/ 09 мая 2011

Если вы уверены, что блок if действительно вводится, этот должен работать:

if ($query->getRedirect()){
    $query->save();
    $this->getResponse()->setRedirect($query->getRedirect(), 301);                    
    return;
}

Я предполагаю, что $this->getResponse() содержит Mage_Core_Controller_Response_Http экземпляр. См. Его метод суперкласса Zend_Controller_Response_Abstract::setRedirect().

EDIT:

Если вы хотите определить постоянные перенаправления с помощью серверной части, перейдите к Catalog -> URL Rewrite Management -> Edit URL Rewrite -> Redirect -> Permanent (301).

...