mainurl дополнение
Анализируя файл error_log моего сайта на предмет ошибок, я заметил много ошибок такого вида:
PHP Fatal error: Call to a member function getBlog() on a non-object in /xxxxxxxxx/plugins/mainurl/classes/hooks/HookMainurl.class.php on line 44
Ошибка появляется тогда, когда идёт запрос на несуществующий url (например при ручной смене url, поисковики продолжают ходить на старый).
Решение:
Файл: mainurl\classes\hooks\HookMainurl.class.php
Заменяем метод InitAction()
Как видно, просто добавил проверку на isSet и если топика нет — переход на 404.
Плюс этого в том, что поисковики быстрее поймут, что страница уже не доступна, а в лог избавится от кучи ошибок.
PHP Fatal error: Call to a member function getBlog() on a non-object in /xxxxxxxxx/plugins/mainurl/classes/hooks/HookMainurl.class.php on line 44
Ошибка появляется тогда, когда идёт запрос на несуществующий url (например при ручной смене url, поисковики продолжают ходить на старый).
Решение:
Файл: mainurl\classes\hooks\HookMainurl.class.php
Заменяем метод InitAction()
public function InitAction()
{
$sUrl = @$_SERVER['REDIRECT_URL'];
$aParamsNew = Router::GetParams();
if (Router::GetAction() == 'error' and substr_count($sUrl, '.html') == 1 and substr_count($sUrl, '/blog/') == 1) {
$aParams = explode('/', trim($_SERVER['REDIRECT_URL'], '/'));
$iStrLen = strlen($aParams[count($aParams) - 1]);
$sUrl = substr($aParams[count($aParams) - 1], 0, $iStrLen-5);
$oTopic = $this->Topic_GetTopicByUrl($sUrl);
if (count($aParams) == 3) {
if (isset($oTopic)) {
Router::Action('blog', $oTopic->getBlog()->getUrl(), array($oTopic->getId() . '.html'));
} else {
Router::Action('error','404');
}
}
else
Router::Action('blog', $oTopic->getId() . '.html', array());
}
}
Как видно, просто добавил проверку на isSet и если топика нет — переход на 404.
Плюс этого в том, что поисковики быстрее поймут, что страница уже не доступна, а в лог избавится от кучи ошибок.
0 комментариев