Категории |
Как настроить 404 ошибкуСбственно вопрос, в шопосе когда обращаешься к несуществующей странице , то просто грузится главная, как сделать, чтобы выдавал 404 ошибку, ну и загружалась страница, что такой страницы не существует? За ранее спасибо за ответ. если правильно понял, может это? Сбственно вопрос, в шопосе когда обращаешься к несуществующей странице , то просто грузится главная, как сделать, чтобы выдавал 404 ошибку, ну и загружалась страница, что такой страницы не существует? За ранее спасибо за ответ. у вас, наверное, чпу включен? Да включен, но проверил на локальном хостинге хоть включен, хоть нет все равно перекидывает на главную. скиньте сюда /manager.php Прикрепил создаете информационную страницу с текстом, говорящим о том, что юзер заблудился, присваиваете ей URL 404.html (например) и делаете в manager.php вот такой замут после 160-й строки: header('HTTP/1.1 404 Not Found'); header('/404.html'); //$PHP_SELF = '/index.php'; //include('index.php'); по вашему вкусу можно и '/404.html', и 'http://сайт/404.html'. вроде второй вариант корректнее. собственно, так я у себя эту проблему решил. авось есть костыли и попрочнее :) на всякий пожарный прикрепляю поправленный файлик добавка и поправка ErrorDocument 404 /404.html и в manager.php вместо header('/404.html'); вставить print file_get_contents('http://' . $_SERVER['HTTP_HOST'] . '/404.html'); так будет корректно отдаваться 404-й код ага, а теперь у меня вопрос: как сделать, чтобы страница /404.html отдавала код 404, а не 200? Создать в корне движка файл, например 404.php, а НЕ информационную страницу И еще такой вопрос дабы не плодить темы. Если просто в корень сайта залить любой html файл то при прямо обращении к нему грузится сайт а не эта страница, как сделать так. чтобы грузилась именно страница? проще изменить расширение. не, я уже иначе намутил. в shop_content.php в начале прописал: if ($_GET['coID'] == 21) { header('HTTP/1.1 404 Not Found'); } 21 - код информационной страницы с 404-й ошибкой. а в manager.php сделал: header('Location: http://сайт/404.html', true, 301); а "header('HTTP/1.1 404 Not Found');" убрал нафиг оттуда. теперь 404-я отдает 404, а несуществующие страницы 301-м редиректом отправляют на 404. это ведь валидно для поисковиков? и плюс в /modules/error_handler.php раскомментировал последнюю строчку "header('HTTP/1.1 404 Not Found');" вообще, наверное, нужно выдачу error_handler оформить под 404-ю страницу и все шишки переводить на него. или так нельзя? ну и зачем столько правок когда можно создать один файл и поправить htaccess? фишка в том, что строка в htaccess срабатывает только тогда, когда обращаешься к несуществующей не-ЧПУ ссылке, то есть http://сайт/wrjfhwu.php нормально перенаправит на 404 через ErrorDocument. да. с ЧПУ косяк. вот, а у человека ЧПУ :) и у меня тоже :) |
|