Отправляет email-рассылки с помощью сервиса Sendsay

Инициировать 404

Здравствуйте.

Помогите придумать:
Как можно заставить апач отработать условие в htaccess по обработке
ошибки 404, если вызван файл, который реально существует?

Т.е. есть некий адрес http://server.ru/folder/ там реально лежит файл
index.php, который работает, проверяет какие-то условия и при
определённых условиях должна показаться заранее сделанная страница об
ошибке 404. Причём редиректить на эту страницу не пойдёт: в строке
адреса должен остаться тот адрес, что набрали. Этот редирект должен
сделать апач, согласно своим правилам.

Ответить   Andrey Yakushev Tue, 27 Jun 2006 15:56:52 +0400 (#565872)

 

Ответы:

Функция header() из php вам в помощь. С её помощью можно выдать любой
хидер. В том числе и 200 и 404.

Просто выдавайте соответствующий хидер при совпадении необходимых условий.

Andrey Yakushev wrote:

Ответить   Oleg Tue, 27 Jun 2006 16:10:03 +0300 (#565892)

 

Здравствуйте, Oleg.

Вы писали 27 июня 2006 г., 17:10:03:

Этот хидер выдаётся уже браузеру. А мне нужно, чтобы всё это ещё разок
обработал апач и перевёл на заранее подготовленную для него страницу
404.

Ответить   Andrey Yakushev Tue, 27 Jun 2006 17:33:00 +0400 (#565899)

 

Из php?

Или через location, что тебя не устраивает. Или через include. Кстати,
достаточно мощно - ты-же можешь инклюдить и просто html файлы
Это в asp есть накая мулька, как "серверный редирект"

Andrey Yakushev wrote:

Ответить   Oleg Tue, 27 Jun 2006 16:40:17 +0300 (#565905)

 

Здравствуйте, Oleg.

Вы писали 27 июня 2006 г., 17:40:17:

Интересное решение...
Только вот у меня нет просто html файлов, а в каждом из php-файлов
анализируется REQUEST_URI. Так вот, если апач показывает мою страницу
404, то там, не смотря на то, что в строке адреса стоит прежний адрес,
в REQUEST_URI содержится уже путь к странице 404, и она показывается
"правильно" (как мне надо). А если я её проинклюдю, то получаются
косяки, т.к. REQUEST_URI остаётся старый.

Наверно придётся забить на строку адреса и редиректить на
несуществующую страницу... :(

Ответить   Andrey Yakushev Tue, 27 Jun 2006 18:41:54 +0400 (#565918)

 

А что тебе мешает переопределить REQUEST_URI в скрипте-обработчике? Я,
например, чтобы не заморачиваться с флагами, часто в _GET или _POST на
предпроверке или этапе подготовке данных что-то вставляю или меняю..

Andrey Yakushev wrote:

Ответить   Oleg Tue, 27 Jun 2006 17:49:33 +0300 (#565921)

 

Здравствуйте, Oleg.

Вы писали 27 июня 2006 г., 18:49:33:

Хочется красивого и простого решения. И так уже _GET поправил, кучу
переменных, которые что-то накапливают, приходится инициализировать,
инклюды проверить, чтобы второй раз не вызывались... И если ещё
REQUEST_URI переписывать - овчинка выделки не стоит, лишь ради того,
чтобы посетитель не догадался, что его послали.

Ответить   Andrey Yakushev Tue, 27 Jun 2006 19:17:17 +0400 (#565932)

 

Просто заголовок ничего не даст. Я делаю так: подключаю файл, который
выдаёт сообщения об ошибках. Он заодно и заголовок 404 выдаёт.
--



библиотекa сайтостроительства http://www.i2r.ru/static/244/

Ответить   Thu, 29 Jun 2006 08:19:19 +0500 (#566733)

 

Здравствуйте, Станислав.

Да, наверно это лучшее решение. Только вот мне оно не подойдёт. :(
Слишком много переделывать в движке придётся.
Не смотря на это, спасибо.

Ответить   Andrey Yakushev Thu, 29 Jun 2006 12:22:18 +0400 (#566735)