На сайте Google Index Magento есть сообщение о фатальной ошибке в файле action.php

Google может сканировать мой сайт, но не может ничего индексировать.

Когда я получаю Google на свой веб-сайт, я получаю сообщение об ошибке:

Неустранимая ошибка: вызов функции-члена getcookieshouldbereceived () для необъекта в /var/www/magento/app/code/core/mage/core/controller/varien/action.php в строке 497

Затем я открыл файл action.php, чтобы увидеть, что не так. В файле action.php строка 497 выглядит так:

if ($ session-> getCookieShouldBeReceived ()) {

Абзац, содержащий строку 497:
/ **
* Получить имя метода действия
*
* @param string $ action
* возвращаемая строка
* /
публичная функция getActionMethodName ($ action)
{
вернуть $ action. «Действие»;
}

/**
* Dispatch event before action
*
* @return void
*/
public function preDispatch()
{
if (!$this->getFlag('', self::FLAG_NO_CHECK_INSTALLATION)) {
if (!Mage::isInstalled()) {
$this->setFlag('', self::FLAG_NO_DISPATCH, true);
$this->_redirect('install');
return;
}
}

// Prohibit disabled store actions
if (Mage::isInstalled() && !Mage::app()->getStore()->getIsActive()) {
Mage::app()->throwStoreException();
}

if ($this->_rewrite()) {
return;
}

if (!$this->getFlag('', self::FLAG_NO_START_SESSION)) {
$checkCookie = in_array($this->getRequest()->getActionName(), $this->_cookieCheckActions)
&& !$this->getRequest()->getParam('nocookie', false);
$cookies = Mage::getSingleton('core/cookie')->get();
/** @var $session Mage_Core_Model_Session */
$session = Mage::getSingleton('core/session', array('name' => $this->_sessionNamespace))->start();

if (empty($cookies)) {
if ($session->getCookieShouldBeReceived()) {
$this->setFlag('', self::FLAG_NO_COOKIES_REDIRECT, true);
$session->unsCookieShouldBeReceived();
$session->setSkipSessionIdFlag(true);
} elseif ($checkCookie) {
if (isset($_GET[$session->getSessionIdQueryParam()]) && Mage::app()->getUseSessionInUrl()
&& $this->_sessionNamespace != Mage_Adminhtml_Controller_Action::SESSION_NAMESPACE
) {
$session->setCookieShouldBeReceived(true);
} else {
$this->setFlag('', self::FLAG_NO_COOKIES_REDIRECT, true);
}
}
}

Не могли бы вы помочь мне понять, что не так?

Спасибо !!

1

Решение

У меня была такая же проблема. Я думаю, что когда бот посещает сайт, объект $ session имеет значение NULL, а не реагирует как обычный браузер. Я модифицировал;

if ($session->getCookieShouldBeReceived()) {

в

if (is_object($session) && $session->getCookieShouldBeReceived()) {

и моя проблема решена. Google обычно индексирует мой сайт. Я знаю, это не очень хорошая вещь для изменения основного кода, но я новичок в magento. Кто-нибудь знает, как сделать это изменение без изменения кода ядра?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]