Страница 404

  • 5 Ответов
  • 881 Просмотров

sovyonok

  • Сообщений: 50
    • Просмотр профиля
    • Прогулки по Москве
Страница 404
« : 30 Января 2018, 20:36:57 »
Похожая тема есть в ветке 0.5.х, но подозреваю, что вопрос был именно о новой версии.

При переходе по адресу сайт.ру/абсолютно_произвольный_набор_символов в браузер отдается главная страница.
Проверил яндексом ответ сервера - выдает 404, как надо.

Что не так?

Похожая но обратная ситуация была с gzip'ом, до фикса. Но там касалось всех страниц.

sovyonok

  • Сообщений: 50
    • Просмотр профиля
    • Прогулки по Москве
Re: Страница 404
« Ответ #1 : 09 Февраля 2018, 22:37:17 »
Заметил закономерность. Ошибка возникает, если в несуществующем URI содержится точка.

sovyonok

  • Сообщений: 50
    • Просмотр профиля
    • Прогулки по Москве
Re: Страница 404
« Ответ #2 : 13 Февраля 2018, 15:57:08 »
Не смог воспроизвести баг на локальном сервере.
Осталось подтвердить еще одну версию, что дело в домене 3-го уровня.

Параллельно обнаружил, что на страничке 404 нет ссылки на главную страницу сайта. Т.е. в исходных кодах href="".

Лечится в файле core/classes/Template.php сменой порядка в функции array_merge.

	/**
* Парсинг шаблонов, возврат значений
*/
public function parse($var, $contents)
{
global $lang, $config, $api;

$sub = array
(
'site_url' => rtrim(DNROOT, '/'),
'self_url' => FULL_REQUEST_URI,
'site_temp' => $config['site_temp'],
'site' => $config['site'],
'lang' => $config['langcode']
);

$newkey = $newval = array();
$result = array_merge($sub, $var);
« Последнее редактирование: 13 Февраля 2018, 18:24:22 от sovyonok »

User

  • Сообщений: 28
    • Просмотр профиля
Re: Страница 404
« Ответ #3 : 13 Февраля 2018, 20:38:59 »
Лечится в файле core/classes/Template.php сменой порядка в функции array_merge.
Спасибо!
Использовал второй вариант. По первому - отключилась вся графика сайта шаблона.

sovyonok

  • Сообщений: 50
    • Просмотр профиля
    • Прогулки по Москве
Re: Страница 404
« Ответ #4 : 14 Февраля 2018, 10:11:20 »
Цитировать
Использовал второй вариант. По первому - отключилась вся графика сайта шаблона.

Сам так попал))
Потом поправил свой пост.

sovyonok

  • Сообщений: 50
    • Просмотр профиля
    • Прогулки по Москве
Re: Страница 404
« Ответ #5 : 14 Февраля 2018, 11:47:04 »
Докопался до ответа на свой вопрос.

Проблема кроется в файле core/classes/Router.php. Функция parsing.

		/**
* 404 - Not Found
*/
if (empty($_REQUEST) AND ! empty($this->uri))
{
$this->_404();
}

В случае (моем) наличия куков с сайта (а при установленном счетчике яндекса они будут) массив $_REQUEST не будет пустым, и условие не сработает.
Возможно, в данном случае требуется более точная проверка.