| imho.ws |
![]() |
|
|
|
# 1 |
|
Junior Member
Регистрация: 07.02.2006
Адрес: Ростов-на-Дону
Сообщения: 52
![]() |
Помогите придумать:
Как можно заставить апач отработать условие в htaccess по обработке ошибки 404, если вызван файл, который реально существует? Т.е. есть некий адрес http://server.ru/folder/ там реально лежит файл index.php, который работает, проверяет какие-то условия и при определённых условиях должна показаться заранее сделанная страница об ошибке 404. Причём редиректить на эту страницу не пойдёт: в строке адреса должен остаться тот адрес, что набрали. Этот редирект должен сделать апач, согласно своим правилам. |
|
|
|
|
# 4 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Self Author
>Тогда в строке адреса будет торчать этот несуществующий файл... RaZEr грит про реврайт, а не редирект. А еще тут глянь: http://ru.php.net/header (про 404 там есть)
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 5 | |
|
Junior Member
Регистрация: 07.02.2006
Адрес: Ростов-на-Дону
Сообщения: 52
![]() |
Цитата:
А ссылка не открывается... |
|
|
|
|
|
# 6 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Self Author
>Про реврайт не знаю ничего. Где об этом можно посмотреть? Да ладно, а это чья тема? >А ссылка не открывается... Зайди на php.net и в поиске набери header.
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 8 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Self Author
>Откуда htaccess узнает, что какой-то скрипт решил закосить под несуществующий? Тогда сам скрипт пусть думает косить ему иль нет => http://ru.php.net/header
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 9 | |
|
Junior Member
Регистрация: 07.02.2006
Адрес: Ростов-на-Дону
Сообщения: 52
![]() |
Цитата:
|
|
|
|
|
|
# 11 |
|
Junior Member
Регистрация: 07.02.2006
Адрес: Ростов-на-Дону
Сообщения: 52
![]() |
Всё дело в "цене" вопроса. Есть вариант: редирект на некий nopage.htm, после которого будет показана страница 404. Минус - светится этот nopage.htm. А теперь, чтобы от этого избавится, нужно что-то сделать. И чем больше всего надо делать, тем "дороже" становится это решение. Скрипты анализируют URI, которым были вызваны, от этого показывают что-то по-разному. И это получается как бы "правило". Для того, чтобы каждый из этих скриптов мог сделать свою страницу 404, нужно писать "исключение", соизмеримое с этими правилами. А это делать не хочется.
Спасибо всем, кто предлагал решения. Жаль, что "красивого" решения нет. |
|
|
|
|
# 12 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Может так:
.htaccess: Код:
ErrorDocument 404 /404_err.php Код:
<?
//Какие-то проверки, и если решили что надо 404 ошибку:
header("HTTP/1.0 404 Not Found");
virtual('404_err.php');
?>
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 14 |
|
KpTeaM
Регистрация: 31.10.2002
Адрес: Russia
Пол: Male
Сообщения: 3 261
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Self Author
Объясни, пожалста, внятно и понятно что нужно и чем тебя не устраивают вышеописанные варианты.
__________________
Над струнами вен моих Лезвия осени, Их сталь леденящая В просинь рук просится... ©Темнозорь |
|
|
|
|
# 15 | ||
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
||
|
|
|
|
# 16 |
|
Member
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294
![]() ![]() ![]() |
Self Author
Допустим, у нас есть вот такая запись в нашем htaccess: ErrorDocument 404 /error.php Первой строкой в error.php отдаём заголовок (как уже писал Hubbitus): header("HTTP/1.0 404 Not Found"); Далее выводим сообщение аля страница не найдена. Теперь дописываем rewrite-ы: RewriteEngine on RewriteRule урл_для_404 /error.php
__________________
Это жжжж неспроста... |
|
|
|
|
# 17 | |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|
|
|
|
# 18 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Sam Dark, чего-то я тебя не понял. Ну выдали мы 404 из скрипта, дальше-то что? Реврайты твои не сработают же, потому как скрипт запущен index.php, и он выдаст браузеру именно то что в нем напишешь, после этого заголовка.
Как вариант с реврайтом, можно вместо вызова virtual в моем примере, сделать попробовать переадресацию на какой-то несуществующий элемент, и его уже реврайтом перезаписать по желанию.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. Последний раз редактировалось Hubbitus; 13.07.2006 в 10:27. |
|
|
|
|
# 19 | |
|
Junior Member
Регистрация: 07.02.2006
Адрес: Ростов-на-Дону
Сообщения: 52
![]() |
Цитата:
|
|
|
|