Header 404 проблема с errordocument

Header 404 проблема с errordocument

Здравствуйте ув. форумчане.
Не могу побороть такую проблему.
Сервер возвращает статус 200 ОК на несуществующие страницы. Не помогает ни "header 404 Not found" ни ErrorDocument 404 /error404.php
В общем перепробовал много всяких вариантов — без результатно. Точнее на локальном сервере ошибка 404 выдается корректно, а вот на хостинге почему-то не работает.

Вот, для примера, нерабочая ссылка (http://inteline.com.ua/main.php?group=44&subgrp=52&p=2& >

Была у меня такая проблема.
На одном хостинге работало, на другом нет. Сайт — мой самопис. Передаю заголовки:

header(‘HTTP/1.1 404 Not Found’);
header(‘Status: 404 Not Found’);

Ошибка была точно такая же, как и у Вас.
Убрал:

header(‘Status: 404 Not Found’);

Все заработало. Не было времени разбираться, в чем собственно была проблема этого заголовка. Посмотрите, как формируется 404 у Вас.

Вставьте этот код перед тем, как устанавливаете 404 Not Found.

Приведите, что выводит var_dump.

Приведите, что выводит var_dump.

Была у меня такая проблема.
На одном хостинге работало, на другом нет. Сайт — мой самопис. Передаю заголовки:

header(‘HTTP/1.1 404 Not Found’);
header(‘Status: 404 Not Found’);

Ошибка была точно такая же, как и у Вас.
Убрал:

header(‘Status: 404 Not Found’);

Все заработало. Не было времени разбираться, в чем собственно была проблема этого заголовка. Посмотрите, как формируется 404 у Вас.

Пробовал по-всякому уже:

header("Cache-Control: no-cache, no-store");
header("Content-Type: text/html; charset=utf-8");
header($_SERVER[‘SERVER_PROTOCOL’]." 404 Not Found"); //include("error404.php");
exit();

header("HTTP/1.1 404 Not Found");
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
exit();
die();

Sinsir, заголовки уже были отправлены. Скорее всего, выключен вывод WARNING. 0. Включите показ всех ошибок, для этого поместите в самое начало индексного файла следующий код.

1. Вы используете кодировку UTF-8. Возможно, это связано с тем, что файлы шаблона / HTML закодированы с помощью UTF BOM. Попробуйте перекодировать файлы шаблона в UTF без BOM либо 2. включите буферизацию вывода (ob_start()). 3. Попробуйте поиск функцию принудительной отправки заголовков через поиск в блокноте.

Если ничего не помогло, поместите следующий код в начало индексного файла.

rerighter, заголовки вообще не передаются, потому что отправлены раньше. Status писать не нужно.

Все попробовал — ничего не дало :confused:

На странице выводится только bool(true)
В коде страницы видно несколько пробелов перед этой надписью. Может как-то с этим связано?

easywind, какой htaccess? Заголовки отправлены до изменения статус кода, следовательно, 404 вообще не применяется.

Sinsir, не все, либо все что вы сумели. Обратитесь к специалисту $. Смысл давать советы, если вы их не выполняете.

Читайте также:  Header encoding utf 8

Пробовал вообще удалять htaccess ничего в этом плане не изменилось.

Все-таки где-то раньше выводится. Перед проверкой на несуществующую страницу подключается файл с функциями. Возможно что там какая-то функция меняет заголовок, но конкретно слова header в нем нету

Выполнил все, кроме функции ob_start(). Я с ней ранее не сталкивался и сейчас читаю мануал по ней чтоб применить

Sinsir, заголовки посылаются перед отдачи клиенту любых данных, которые не являются заголовками. Это может касаться и BOM бита, и пробелов, которые установлены вне контейнера . Если не используется пребуферизация, и до посылки заголовков подключается файл, который закодирован, как UTF-8 с BOM, дальнейшие заголовки посланы не будут.

Сегодня я расскажу о нескольких полезных вещах, которые можно сделать с файлом htaccess. Эти вещи, которые вы сможете использовать на своих веб-сайтах, сделают работу с сайтами более удобной.

1. Перенаправление посетителей при обновлении сайта.

Когда Вы обновляете или тестируете сайт на хостинге, Вы можете перенаправлять посетителей на определенную страницу. Для этого в файле .htaccess необходимо прописать следующий код:

Замените 123.123.123.123 на Ваш ip-адрес, а также замените page.html на ту страницу, которую будут видеть пользователи, зашедшие на сайт.

2. Определенная страница с ошибкой 404.

Когда пользователи обращаются к странице на Вашем сайте, которой не существует, то им показывается ошибка 404. Если вы хотите сделать ее определенной страницей, то в файле htaccess следует прописать следующий код:

Перенаправлять посетителей в таком случае удобно на главную страницу сайта.

3. Редирект на перемещенные или переименованные страницы.

Если вы переименовали или переместили некоторые страницы на сайте и хотите, чтобы посетители увидели уже новые страницы, даже если они обращаются по старому адресу, следует в файл htaccess прописать следующий код:

Также вы можете использовать такой редирект для того, чтобы страница не потерялась для поисковиков.

4. Запрет на просмотр директории.

Если у Вас в папке на сайте нет файла index, то любой пользователь может посмотреть, какие файлы в ней лежат.

Чтобы избежать таких вещей, следует прописать такой код:

На некоторых хостингах такая функция прописана по-умолчанию, в таком случае Вам не стоит беспокоиться.

5. Создание красивых URL.

Несомненно, что из этих двух ссылок первая выглядит намного привлекательнее.

С помощью файла htaccess и апач модуля, который называется mod_rewrite, вы сможете переделать свои ссылки на более красивые и короткие.

Читайте также:  Ati mobility radeon hd 4200 driver

Вот некоторые примеры с кодом:

P.S. В интернете существует несколько сайтов, с помощью которых можно автоматически редактировать файл .htaccess. Например htaccesseditor.com.

P.P.S. Чтобы с нуля создать такой файл Вам следует открыть, например, блокнот, вписать в него строчку

нажать "Сохранить как. ", в имя файла ввести .htaccess и выбрать "все файлы".

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.frontdeskapp.com
Перевел: Сергей Патин
Урок создан: 22 Июня 2009
Просмотров: 98544
Правила перепечатки

5 последних уроков рубрики "Для сайта"

Эффекты блочного раскрытия

Сегодня мы хотели бы поделиться несколькими идеями касающегося эффекта блочного раскрытия, которую вы можете использовать для своих проектов.

15 полезных .htaccess сниппета для сайта на WordPress

Если вы хотите существенно повысить уровень безопасности вашего сайта на WordPress, то вам не избежать конфигурации файла .htaccess. Это позволит не только уберечься от целого ряда хакерских атак, но и организовать перенаправления, а также решить задачи связанные с кэшем.

20 бесплатных тем для WordPress в стиле Material Design

Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.

20 сайтов с креативным MouseOver эффектом

Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.

45+ бесплатных материалов для веб дизайнеров за август 2016

Под конец месяца предлагаем ознакомиться с набором бесплатных материалов для веб дизайнеров за прошедший месяц.

Полная поддержка директив .htaccess прилагается.

Пролонгации домена 199-00 руб

Генерация — создание собственных кодов ответов Apache

Этот скрипт автоматически генерирует директивы .htaccess которые позволяют создать собственные страницы ошибок. Введите URL вашей страницы которую вы бы хотели показывать пользователям для указанного кода состояния или оставьте поле ввода пустым, чтобы не указать на индивидуальную страницу с ошибкой.

Размещать данные директивы нужно в файле .htaccess расположенным в корне вашего сайта.

Шаблон-пример корректных вводимых УРЛ- адресов следующий:

  • "http://htaccess.net.ru/error/my-error.php"
  • "http://www.htaccess.net.ru/error/my-error.txt"
  • "/error/404.shtml"

Error Document:

Введите URL которые Вы хотите использовать в качестве кодов ошибок сервера. Один URL (путь к файлу) — в 1 поле.

При возникновении ошибки 4xx или 5xx посетитель Вашего сайта увидит в браузере сообщение от сервера, которое вряд ли можно назвать предельно понятным рядовому пользователю. Apache предоставляет возможность выдать вместо аскетичного технического текста, не изобилующего деталями, свою страницу, где Вы можете человеческим языком объяснить пользователю, что произошло и что делать.

Читайте также:  Excel названия столбцов цифрами

Рассмотрим примеры. Допустим, пользователь обратился к документу, которого не существует на сервере.

Такое может произойти по разным причинам: где-то осталась ссылка на уже удаленный Вами документ, кто-то дал пользователю неправильную ссылку или пользователь допустил ошибку, когда набирал адрес страницы в браузере. В этом случае сервер выдаст ошибку 404 (Not Found) и текст вида "The requested URL такой — то was not found on this server".

Можно выдать вместо этой строчки документ в дизайне Вашего сервера, в котором написать что-то типа "Произошла ошибка — запрошенный документ не найден. Попробуйте уточнить адрес, воспользоваться поисковой системой или начать просмотр сайта с первой страницы". Такое сообщение пользователь поймет гораздо лучше. Более того, пожалуй, выдача дружественных, понятных любому посетителю сообщений является хорошим тоном.

Итак, создаем документ, который будем показывать пользователю в случае возникновения ошибки 404.

Информационно красиво оформленные ошибки кодов ответов веб сайта http://htaccess.net.ru можно увидеть по ссылкам ниже.

Итак в файле ". htaccess " дописываем сверху следующие строки например:

# содержание файла .htaccess:

# следующие директивы файла .htaccess оставлены для общего примера

AddType text/html .shtml

AddHandler server-parsed .shtml

Теперь при возникновении ошибки 404 пользователь увидит именно Ваш файл. Еще можно скриптом или с помощью SSI вставить в выдаваемый документ какую-нибудь служебную информацию, которую пользователь должен будет привести, если решит обратиться за комментариями к Вам по e-mail. Таким образом можно обработать практически все негативные коды возврата. Конечно, можно обработать и позитивные коды, но смысл этого не до конца ясен, равно как непонятно в какой ситуации это может пригодиться.

В ниже приведенных примерах вы можите узнать как перенаправлять посетителей с зарегистрированных доменов с трафиком, перенаправляя их таким образом с несуществующих страниц таких доменов например на главную страницу другого рабочего домена.

Приведем еще несколько возможных вариантов использования данной директивы для создания собственных ответов на ошибочные ответы веб сервера Apache ErrorDocument веб мастером в .htaccess:

# в случае ошибки "SERVER ERROR" показывается страница с другого ресурса:

ErrorDocument 500 http://htaccess.net.ru/cgi-bin/500.pl

# в случае ошибки "NOT FOUND" показывается страница с того же веб-сайта:

ErrorDocument 404 /cgi-bin/error404.pl

# в случае ошибки "FORBIDDEN" показывается текстовое сообщение, которое

# обязательно должно начинаться с кавычки, кавычка в сообщении не выводится:

ErrorDocument 403 "Sorry can’t allow you access today, 403 Status Codes Apache

Ссылка на основную публикацию
Adblock detector