#magento #mage
#magento #mage
Вопрос:
Похоже, я отследил проблему, с которой у меня возникли результаты поиска magento popular, но я схожу с ума, пытаясь заставить их перенаправлять должным образом.
Хорошо, вот ситуация. Я не возражаю против популярных запросов результатов поиска Magento в индексе SE. Часто клиент вводит что-то, что может быть полезно для поиска. Моя проблема заключается в том, что клиент вводит в строку поиска те же термины, что и категория или продукты. Это создает проблемы с дублирующимся контентом, поэтому я перенаправляю эти условия запроса в Magento Admin.
Однако эти перенаправления представляют собой 302 временных перенаправления, хотя на самом деле их должно быть 301.
Я отыскал файл в Mage> CatalogSearch > контроллеры > ResultController.php в строке 65 приведен следующий код
if ($query->getRedirect()){
$query->save();
$this->getResponse()->setRedirect($query->getRedirect());
return;
}
Я думаю, что где-то здесь должно быть
->setHttpResponseCode(301)
Но пока я нигде не могу получить ответ на перенаправление 301.
Я, конечно, могу сделать это в htaccess, но это было бы намного проще, если установить программно.
Ответ №1:
Если вы уверены, что 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()
.
Редактировать:
Если вы хотите определить постоянные перенаправления с помощью серверной части, перейдите Catalog -> URL Rewrite Management -> Edit URL Rewrite -> Redirect -> Permanent (301)
.
Комментарии:
1. Да, я знаю, что вы можете указать некоторые перенаправления в разделе АДМИНИСТРАТОРА, но они обычно зарезервированы для продуктов и категорий, верно? Или если вам нужно перенаправлять на лету?
2. @Robert: Я тестировал
setRedirect($query->getRedirect(), 301);
с перенаправлениями внутреннего и внешнего доменов. Это сработало как заклинание, так что это не должно быть проблемой.3. @Robert: да, обычно вы увидите товары и категории в разделе Управление перезаписью URL, но есть третий вариант
Custom
, который позволяет вам определять собственные перенаправления. Однако я упомянул управление перезаписью URL только в качестве альтернативы. Я предположил, что у вас уже есть или планируете расширятьMage_CatalogSearch_Model_Query
с помощью поля http_code или другого флага, который позволяет вам решать, когда использовать 302, а когда 301 при сопоставлении определенного поискового запроса.4. код действительно сработал как по волшебству. Однако это не сработало в локальной папке, которую я привык использовать при настройке Magento. Просто для тестирования я сделал это в базовом коде в папке Mage, и это действительно работает. Либо я неправильно повторил путь в code> local folder, либо происходит что-то еще.