Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/48: Рейтинг темы: голосов - 48, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7

Создание ошибки 404 на Apache для нескольких сайтов

22.11.2010, 12:39. Показов 9893. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите пожалуйста разобраться с такой проблемой. Есть сервер Apache на котором базируются несколько сайтов. Сейчас при запросе несуществующей страницы сервер выдает ошибку 404 (одинаковую для всех сайтов на этом сервере). Она очень не информативна и хотелось бы индивидуальную страницу ошибки 404 для каждого сайта. В каждом сайте создал .htaccess и прописал ErrorDocument 404 /404.html, также создал 404.html и поместил в корневую директорию, все работает, НО сервер выдает SERVER RESPONSE: HTTP/1.1 200 OK, а должен SERVER RESPONSE: HTTP/1.1 404 Not Found. Объясните пожалуйста как сконфигурировать чтобы сервер выдавал разного дизайна ошибку 404 для каждого сайта и при этом отсылал статус не 200, а 404 Not Found. Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2010, 12:39
Ответы с готовыми решениями:

Создание нескольких сайтов на одном ip внешнем ip
Здравствуйте, подскажите в таком вопросе, есть сервер на ubuntu, apache, внешний ip, сейчас прикреплён к домену. Задача прикрепить второй...

Условия для ошибки 404
Всем привет. Подскажите пожалуйста, как реализовать условие: Есть такой код: <?php $uri = $_SERVER; $segment =...

Создание нескольких сайтов с разными именами на домашнем сервере с одним IP
Здравствуйте! Вопрос о создании нескольких сайтов с разными именами на домашнем сервере. Собственно, на винде установлен XAMPP. В апаче...

12
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 15:12
Надо в .htaccess написать такую строку
Code
1
ErrorDocument 404 404.html
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
22.11.2010, 16:10  [ТС]
Такая строка написана, однако не помогает. При наборе неправильного адреса выкидывает страницу 404.html, однако сервер статус все равно выдает 200 OK.

Добавлено через 9 минут
Также заметил, что если удалить из файла строку ErrorDocument 404 /404.html, при неправильно набранном адресе все равно открывается страница 404.html Где еще указывается какую страницу открывать при неправильно набранном адресе? Может там что нибудь напортачено?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 16:16

Не по теме:

Точнее, надо /404.html , туплю, плохо читал.


Значит у Вас в <VirtualHost>'ах в AllowOverride запрещено FileInfo, под которое как раз попадает ErrorDocument.
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
22.11.2010, 16:35  [ТС]
Я не сисадмин, можете пожалуйста чуть подробнее что нужно передать админу чтоб все заработало?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 16:54
Найти в конфигах Апача директивы <VirtualHost>, соответствующие нужным доменам, и в них к директиве AllowOverride дописать FileInfo .
см. AllowOverride Directive
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
22.11.2010, 17:18  [ТС]
Насколько я понял этим указывается игнорировать или нет файл .htaccess? Если да, то почему сейчас в файле .htaccess прописанные редиректы например с домена без www на домен c www не игнорируются? А игнорируется только ErrorDocument?

Добавлено через 9 минут
К примеру эти два редиректа прописанные в файле .htaccess прекрасно работают.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]

Только что попробовал их удалить и редирект перестает работать, то есть файл .htaccess не игнорируется.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 17:51
Цитата Сообщение от Ruslcup Посмотреть сообщение
А игнорируется только ErrorDocument?
Да, но не только он, а еще другие директивы, которые тоже попадают под FileInfo.

Добавлено через 4 минуты
Цитата Сообщение от Ruslcup Посмотреть сообщение
К примеру эти два редиректа прописанные в файле .htaccess прекрасно работают.
Да, где-то что-то не сходится.
Цитата Сообщение от AllowOverride Directive
FileInfo
Allow use of the directives controlling document types (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, and mod_mime Add* and Remove* directives, etc.), document meta data (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), mod_rewrite directives RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) and Action from mod_actions.
Добавлено через 1 минуту
А ради эксперимента попробуйте
Code
1
ErrorDocument 404 "Error 404"
Выдаст ли он "Error 404" со статусом 404?
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
22.11.2010, 18:02  [ТС]
То есть получается что даже при выключенном FileInfo такие команды как RewriteCond все равно работают в файле .htaccess?

Добавлено через 9 минут
Написал как Вы сказали ErrorDocument 404 "Error 404" и получилось!

Вот ответ от сервера:
SERVER RESPONSE: HTTP/1.1 404 Not Found
Date:
Mon, 22 Nov 2010 14:56:08 GMT
Server:
Apache/2.2.3 (Red Hat)
Connection:
close
Content-Type:
text/html; charset=iso-8859-1
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 18:06
Цитата Сообщение от Ruslcup Посмотреть сообщение
и получилось!
Ага, я понял. Верните
Code
1
ErrorDocument 404 /404.html
и сразу после RewriteEngine On добавьте
Code
1
RewriteRule ^404\.html($|\?) - [L]
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
22.11.2010, 18:12  [ТС]
Не работает (снова пишет 200). Только в первый раз когда вписал ErrorDocument 404 "Error 404" пришел статус 404. Сразу попробовал другой url ввести и выкидывает 200.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2010, 18:17
У Вас не хватает RewriteBase . Попробуйте так
Code
1
2
3
4
5
6
7
8
9
10
11
ErrorDocument 404 /404.html
 
RewriteEngine On
RewriteBase /
 
RewriteRule ^404\.html($|\?) - [L]
 
RewriteCond %{HTTP_HOST} ^site.ru$
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
 
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]
0
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 7
23.11.2010, 11:01  [ТС]
Выдал статус 404, но только в первый раз. Все последующие выдает статус 200.

Добавлено через 10 минут
В принципе в файле .htaccess у меня много чего понаписано и когда я установил только
ErrorDocument 404 /404.html

RewriteEngine On
RewriteBase /

RewriteRule ^404\.html($|\?) - [L]

RewriteCond %{HTTP_HOST} ^site.ru$
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]

RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]

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

То есть все рабочие ссылки на сайте стали выкидывать 404 ошибку

Добавлено через 19 минут
Удалось выяснить что статус 404 не получается из-за всего этого написанного в .htaccess

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png|css|php|pdf|zip|js|swf |xml)$
RewriteCond %{REQUEST_URI} !^.*/prenumerata/.*$
RewriteCond %{REQUEST_URI} !^.*/adminas/.*$
RewriteCond %{REQUEST_URI} !^.*/fckeditor/.*$
RewriteCond %{REQUEST_URI} !^.*/js/.*$
RewriteCond %{REQUEST_URI} !^.*/class/.*$
RewriteCond %{REQUEST_URI} !^.*/mail/.*$
RewriteCond %{REQUEST_URI} !^.*/pdf/sask/.*$
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule (.*) ?varda=$1

если это удалить то статус получается 404, но не открывает ни одной ссылки на сайте. Может здесь и есть какая нибудь ошибка?

Добавлено через 15 часов 55 минут
Насколько я понял это команды для виртуальных ссылок, вот именно с ними и не дружит статус 404. Может у кого есть какие идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2010, 11:01
Помогаю со студенческими работами здесь

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

Apache 404
Всем привет. Поставил апач на linux, но не получается настроить. Вот конфиг: AddType application/x-httpd-php .php .phtml ...

Cookie для нескольких сайтов
Допустим есть сайт на 2 доменах. Как положить куки на одном домене что бы и на втором они были тоже.

Хостинг для нескольких сайтов?
Здесь вроде много хостингов советуют, но преимущественно, как я помотрю, для одного сайта. А так, чтобы для нескольких, скажем, для шести,...

Ошибка 404 в apache в среде codelobster
Добрый вечер, изучаю самостоятельно язык php, поставил себе wampserver с php+mysql+apache и в качестве среды программирования выбрал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru