Страница 404
#1
Отправлено 18 August 2011 - 12:27 AM
Точнее сделать ее немного покрасивее ,а то она страшная
#2
Отправлено 18 August 2011 - 08:33 AM
#3
Отправлено 30 August 2011 - 06:31 AM
а еще лучше что бы небыло ее, и переходило на главную страничку
это не всегда удобно, а вот управление из админки было бы кстати
#4
Отправлено 16 December 2011 - 04:24 PM
как сделать чтобы при 404 ошибке выводилась страница, которую я сделаю в менеджере страниц и обзову 404.html
на ней можо было бы разместить уже нормальное сообщение об ошибке.
#5
Отправлено 16 December 2011 - 06:30 PM
Вариант, если до (или вместо) апача стоит nginx:как сделать чтобы при 404 ошибке выводилась страница, которую я сделаю в менеджере страниц и обзову 404.html
на ней можо было бы разместить уже нормальное сообщение об ошибке.
error_page 404 /404.html;
location = /404.html
{root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html
{root /usr/share/nginx/html;
}
Более полно: http://wiki.nginx.or...dule#error_page
Хотя, вроде, у апача оно тоже где-то лежит в качестве вполне конкретного html-файлика. Редактируй как угодно.
#6
Отправлено 16 December 2011 - 06:40 PM
т.е. её нужно будет сверстать под сайт..
было бы идеально чтобы в менеджере страниц создать отдельную страничку, тогда она будет в дизайне сайта и все блоки будут, чтоб покупатель мог перейти к катологу например.
#7
Отправлено 16 December 2011 - 07:18 PM
Нет. Если "в этом" это в описанном мной варианте, то не в корень сайта, а туда, куда указывает root в location. Если 404.html класть прямо в корень сайта, то location вообще не нужен. Он именно для того, чтобы 404.html можно было положить отдельно. В некоторых репозиториях с nginx этот набор директив в конфиге (и файлов в каталоге) идет уже в дефолтовой установке.в этом варианте я так понимаю нужно создать страницу 404.html и выложить её в корень ?
Не обязательно. Можно как у Яндекса. Или еще у кого. Сейчас вообще модно стало 404-ю ошибку чуть ли не круче сайта делать .т.е. её нужно будет сверстать под сайт..
Что такое "менеджер страниц"?было бы идеально чтобы в менеджере страниц создать отдельную страничку, тогда она будет в дизайне сайта и все блоки будут, чтоб покупатель мог перейти к катологу например.
#8
Отправлено 16 December 2011 - 08:39 PM
если я спомощью него создам страницу, я ведь к ней путь не смогу прописать, её ведь нет в отдельном файле.
#9
Отправлено 16 December 2011 - 11:45 PM
Т.е. теперь у меня обработка ошибки 404 в файлике имя_сервера.conf выглядит как
error_page 404 /page_2.html;
PS. Кстати, отвечая на более ранний вопрос. Для перехода по ошибке на стартовую страницу, очевидно, надо вписать index.php, но мне тоже не нравится эта идея.
#10
Отправлено 16 December 2011 - 11:57 PM
define('ERROR_404_HTML', '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>404 Not Found</H1>The requested URL was not found on this server.<HR><I>Generated by ShopCMS</I></BODY></HTML>');
этот кусок и отвечает за 404, правьте как хотите...
#11
Отправлено 17 December 2011 - 12:08 AM
Странно. У меня на несуществующую страницу, если ситуация не описана в конфиге nginx ругается "404 not found|nginx", а не текстом из russian.php. Т.е. nginx как-то просекает, что нет такой запрошенной странички. А ведь судя по процитированному Вами она есть, но в виде сообщения об ошибке. Той же.этот кусок и отвечает за 404, правьте как хотите...
PS. Полистал тексты на предмет ERROR_404_HTML. Впечатление, что die с этим текстом выдается отнюдь не везде и не всегда, а только в конкретных случаях.
#12
Отправлено 17 December 2011 - 12:18 AM
#13
Отправлено 17 December 2011 - 12:33 AM
http://shop.renacomp...oduct_1553.html - нормальная ссылка.
http://shop.renacomp...ct_1553ххх.html - нормальная переадресация на error 404, т.е. на http://shop.renacomp.ru/page_2.html
http://shop.renacomp...uct_155311.html - "HTTP 404 - не найдено - Windows Internet Explorer".
http://shop.renacomp...duct_155311.htm - нормальная переадресация на error 404, т.е. на http://shop.renacomp.ru/page_2.html
Похоже, что-то в штатных реврайтах nginx (из дефолтового .htaccess) недодумано. буду разбираться.
Но ShopCMS-ное сообщение об ERROR_404 так и не смог получить, как ни старался .
#14
Отправлено 17 December 2011 - 08:43 AM
потом если в каталоге создать товар ( например http://site.ru/product_682.html),
получилось следующее:
http://site.ru/product_682.html - нормальная ссылка на товар
http://site.ru/product_682.htm - выдаёт страницу которуя я создал
http://site.ru/product_6821111.html - выдаёт стандартный текст shopcms 404 Not Found
далее если товар удаляем получается:
http://site.ru/product_682.html - выдаёт стандартный текст shopcms 404 Not Found
http://site.ru/product_6821111.html - выдаёт стандартный текст shopcms 404 Not Found
http://site.ru/product_682.htm - выдаёт страницу которуя я создал
http://site.ru/fhfghfgh - тоже выдаёт страницу которуя я создал
где что поправить чтобы выдавал всегда мою страницу?
#15
Отправлено 29 August 2012 - 04:01 PM
до этого момента все понятно!Сможете. Как оказалось. Создал новую страничку с именем "Ошибка 404", написал туда некий текст. Сохранилось с заголовком-ссылкой "href="page_2.html">Ошибка 404".
После этой фразы появляется вопрос! где находится конфиг? где произвели замену ?Заменил в конфиге nginx ссылку 404.html ссылкой page_2.html, location убрал за ненадобностью, т.к. root совпадает с дефолтовым root сайта.
Дополните сообщение.
Зарание спасибо!
#16
Отправлено 29 August 2012 - 04:27 PM
Дополняю: Вы не сможете изменить конфиг Nginx на хостинге, где стоит Apache .После этой фразы появляется вопрос! где находится конфиг? где произвели замену ? Дополните сообщение.
#17
Отправлено 29 August 2012 - 04:55 PM
А если стаит Apache, как правильно настроить еще не известно! )Дополняю: Вы не сможете изменить конфиг Nginx на хостинге, где стоит Apache .После этой фразы появляется вопрос! где находится конфиг? где произвели замену ? Дополните сообщение.
остается только одно решение, переписать /core/languages/russian.php и вставить очень красивую страничку с припиской "просим вернуться на главную страницу"
#18
Отправлено 29 August 2012 - 05:17 PM
#19
Отправлено 29 August 2012 - 06:21 PM
1. Почему же? У апача точно так же, как и у nginx в основном конфиге (httpd.conf) задается html-шаблон (файл), который выдается при error-404, т.е. при обращении к несуществующей ссылке. Эту общую для всех настройку можно перекрыть локальной настройкой. У nginx - в конфигурации для конкретного сайта, у апача - в конфигурациях виртуальных хостов (если они есть, а у хостера они всегда есть), что в свою очередь можно перекрыть в .htaccess (если это не запрещено). Про апач на все сто не уверен, плохо его знаю и почти не использую.А если стаит Apache, как правильно настроить еще не известно!
2. надо понимать, что для ShopCMS "несуществующие страницы" есть двух типов - "совсем неверная ссылка", для которой нет ни прямого содержимого, ни реврайта в htaccess и неверная, но попадающая под реврайт-правила в htaccess ссылка (например, когда мы удалили товар, а ссылки на него в поисковиках остались). В первом случае код 404 и шаблон (если он есть) будет определяться именно web-сервером (апачем, нгинксом - не важно). Во втором - shopCMS-ом. Т.е. для первого случая путь к шаблону "страница не существует" надо задавать в .htaccess (конфиги виртуальных хостов и, тем более, httpd.conf клиентам хостера врядли доступны), а для второго вполне можно в russian.php или еще какими-либо способами, использующими возможности ShopCMS.
3. Какие красивые шаблоны не делай, а IE все равно при статусе 404 показывает СВОЮ локальную страничку. Можно не выдавать статус 404, но этого делать не стоит, т.к. по крайней мере гугль периодически (и довольно часто) проверяет индексируемые сайты на этот предмет, т.е. генерит рандомайзную страничку типа yousite.ru/345345%^6534.html и пытается по ней зайти. Если в ответ получит не 404 (ошибка), а 200 (все пучком), то врядли это кончится чем-то хорошим для индексации сайта .
4. (вдогонку) В принципе, как и писал автор предыдущего сообщения, можно написать .htaccess так, чтобы ЛЮБАЯ ссылка, не попавшая под ПРЕДЫДУЩИЕ реврайт-правила тоже реврайтилась во что-нибудь. Например, в index.php/?nourl=yes, но удобнее в какой-нибудь отдельный php-файл. Логично было бы в error-404.php . Ну а дальше все стандарно. В php пиши все, что хочешь и приделывай шаблон (TPL.HTML) какой хочешь.
PS. (for all) не стоит думать, что я такой добрый и строчу тут простыни из альтруизма. Все люди разные. Мне куда проще самому понять предмет пытаясь объяснить решение кому-то другому. В процессе ответа оно четко раскладывается в собственной голове по полочкам. Так что правильный вопрос, на мой взгляд, тоже заслуживает плюса .
#20
Отправлено 27 September 2013 - 05:55 PM
admin.php
core/includes/category.php
core/includes/category_search_result.php
core/includes/news.php
core/includes/order_history.php
core/includes/product_detailed.php
core/includes/product_discussion.php
core/includes/show_aux_page.php
index.php
В этих файлах найти:
die(ERROR_404_HTML);
и заменить на:
// redirect to 404 page and exit die(header("Location: " . CONF_FULL_SHOP_URL . "404.html"));
Само собой у Вас должен быть файл 404.html в корне сайта.
В принципе, можно каждому случаю "не найдено" приписать отдельную страницу 404. Seoшникам должно понравиться.
Сообщение отредактировал vito78: 27 September 2013 - 05:58 PM