Как сделать перенаправление 404 ошибки на страницу поиска?

#1 7 июля 2014 в 00:21
Понадобилось мне склеить некоторые домены между собой, разумеется при 301-й редиректе с зеркала на основной домен полезли 404 ошибки страниц на главном домене, т.к. на основном домене по определению этих страниц и не могло быть.

Пытался выкрутиться через стандартную директиву ErrorDocument 404 /search с помощью .htaccess, не перенаправляет не понятно почему..

Как тогда в самом движке сделать такой редирект например на страницу поиска, т.е. /search

Кто подскажет мне решение?

Уже час мучаюсь zlo

И с чего это правило ErrorDocument 404 /search не работает вдруг?
#2 7 июля 2014 в 00:34
примерное решение как понимаю я нашел проблемы в этом топике instantcms.ru/forum/thread12399.html как это изменить в движке, но в каком файле этот код находится?
#3 7 июля 2014 в 00:53
так-с, нашел где этот код… в файле /core/cms.php
но, проблема вот в чем.
там можно менять относительный путь в пределах шаблона, а мне нужен относительный путь от корня и как быть?

  1. public static function error404(){
  2.  
  3. self::loadClass('page');
  4.  
  5. header("HTTP/1.0 404 Not Found");
  6. header("HTTP/1.1 404 Not Found");
  7. header("Status: 404 Not Found");
  8.  
  9. if (!cmsPage::includeTemplateFile('special/error404.php')){
  10. echo '<h1>404</h1>';
  11. }
#4 7 июля 2014 в 00:59
а непроще

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <script type="text/javascript"> setTimeout('location.replace("http://nedoriko.ru")', 50000); /*Изменить текущий адрес страницы через 50 секунды (50000 миллисекунд)*/ </script> <noscript> <meta

так
#5 7 июля 2014 в 10:26
в 404 код страницы пишем templates/template/special/error404.php

  1. <meta http-equiv="refresh" content="0; url=http://site.ru/search">
где-то как-то вот так:
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <meta http-equiv="refresh" content="0; url=http://site.ru/search">
  4. <title><?php echo $_LANG['404']; ?></title>
  5. <style type="text/css">
  6. * { font-family: Arial; }
  7. html, body { height:100%; margin:0px; }
  8. h2, p { margin:0px; }
  9. </style>
  10. </head>
И не надо ничего придумывать, как по мне)

content="0; — время в секундах, через сколько перенаправлять.
#6 7 июля 2014 в 10:49
Всем спасибо за помощь! Собственно, пришлось так и сделать… раз другого варианта аля { $inCore->redirect('/search'); } гуру движка не хотят выдавать в готовом виде smile
#7 7 июля 2014 в 11:26
Лично мне понравилось решение от Amurland instantcms.ru/blogs/voznemozhno/nedostupnaja-stranichka.html
Пользователь сам решает перейти в интересующий раздел, воспользоваться картой сайта или поиском
#8 7 июля 2014 в 11:37


Лично мне понравилось решение от Amurland instantcms.ru/blogs/voznemozhno/nedostupnaja-stranichka.html
Пользователь сам решает перейти в интересующий раздел, воспользоваться картой сайта или поиском

ValeraK

Очень даже приличный вариант, спасибо! Надеюсь озвученная мной проблема и варианты её решения многим здесь еще пригодятся со временем.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.