UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: WenLeks от 18 Августа 2014, 10:35:56

Название: Переадресация на 404
Отправлено: WenLeks от 18 Августа 2014, 10:35:56
День добрый!
при вызове метода notfound необходимо сделать редирект на страницу 404, как сделать что бы страница отдавала код 404? отдает 200..
Название: Re:Переадресация на 404
Отправлено: WenLeks от 28 Августа 2014, 09:23:55
Извиняюсь, может я как то не правильно выразился, что ни кто не может мне помочь..просто необходимо при вызове несуществующей страницы что бы перекидывало  http://сайт.рф/404 (при чем отдавала при этом код 404), а не просто выводилось сообщение что страницы не существует по тому же адресу, возможен ли такой вариант?
Название: Re:Переадресация на 404
Отправлено: admin от 28 Августа 2014, 12:34:11
для несуществующей страницы и так выводится 404 ответ (попробуйте вбить к названию вашего сайта /23w4efvertgt4rt5grt и посмотрите firebug). А вот если вам нужно отображать 404 ответ на конкретном url, например на site.ru/404 то, думаю, вам стоит посмотреть в сторону htaccess инструкции для 404 страницы. Но опять же htaccess будет перезаписан при первом же обновлении umi. Так что стоит ли?
Название: Re:Переадресация на 404
Отправлено: WenLeks от 28 Августа 2014, 12:59:11
да, по ссылке http://название.ru/oirehtgrnvk ответ 404,с этим проблем нет.. просто заказчик пристал, хочет что бы при вызове несуществующей страницы был редирект на адрес http://название.ru/404 и на ней он еще какой то текст и скрипты хочет добавить..
Название: Re:Переадресация на 404
Отправлено: admin от 28 Августа 2014, 14:01:51
текст и скрипты можно добавить в шаблоне notfound, которsй как раз и выводится на таких страницах
Название: Re:Переадресация на 404
Отправлено: WenLeks от 28 Августа 2014, 14:24:52
это да..адрес то вот только название.рф/404/ должен быть..ну ладно, спасибо :)
Название: Re:Переадресация на 404
Отправлено: Vladimir от 06 Сентября 2014, 16:19:20
Чтобы отдать код 404 из кастомного макроса, используйте команды:
$template = 'default';
$buffer = outputBuffer::current();
$buffer->status('404 Not Found');

def_module::setHeader('%content_error_404_header%');
list($tpl_block) = def_module::loadTemplates("content/not_found/".$template, 'block');
$template = $tpl_block ? $tpl_block : '%content_usesitemap%';
return def_module::parseTemplate($template, array());

Взято из content::get404
Странно, что если напрямую вызвать cmsController->getInstance()->getModule('content')->get404();  то код ответа будет 200.