Forum Webscript.Ru

Общие => Веб Сервера => Тема начата: dub от 16 Ноября 2003, 15:43:59

Название: mod_rewrite -> PHP URL parser -> Error 404
Отправлено: dub от 16 Ноября 2003, 15:43:59
mod_rewrite отдает URL на обработку PHP скрипту, который, если соответствие не найдено выдает header("HTTP/1.1 404 Not Found"); Однако в этом случае в access.log ответ 404 прописывается, но ErrorDocument не вызывается.

RewriteEngine on отменяет действие директивы ErrorDocument? Или передавать URL на обработку скрипту и при этом отслеживать конечный результат обработки для корректной обработки ошибок на стороне сервера невозможно в принципе?

Суть вот в чем. Хотелось бы иметь обе возможности: и вывести собственный ErrorDocument (не обязательно, конечно, именно отдельный документ, но некий собственный вывод по поводу возникновения ошибки), и отображать ошибки в логах Апача для последующей статистической обработки. А header можно отослать только один.

Заранее спасибо.
Название: mod_rewrite -> PHP URL parser -> Error 404
Отправлено: MadDog от 17 Ноября 2003, 09:37:48
Ну не знаю что у тебя за проблемы, но у меня такая конструкция вполне работает
ErrorDocument 404 /404.php
RewriteEngine on
.......

Правда на счёт логов я наверняка не скажу, но вот страница отображается чётко.
Название: mod_rewrite -> PHP URL parser -> Error 404
Отправлено: dub от 17 Ноября 2003, 12:13:42
MadDog
А обработка ведется внутри .htaccess, исключительно правилами mod_rewrite? У меня после пары правил обработка передается скрипту, который уже взаимодействует с базой:
ErrorDocument 404 /404.php
RewriteEngine on
RewriteRule ^admin$ - [L]
RewriteRule ^admin/.*$ - [L]
RewriteRule ^ins/.*$ - [L]
RewriteRule ^.*$ index.php

А уже index.php решает, есть ли такой виртуальный документ в такой виртуальной директории. После этого выдает header 404. Может в этом дело?
Название: mod_rewrite -> PHP URL parser -> Error 404
Отправлено: MadDog от 17 Ноября 2003, 14:09:18
А ты всё таки попробуй без
Цитировать
dub:
index.php решает, есть ли такой виртуальный документ в такой виртуальной директории
.
У меня всё работает на ура и без этого.
Название: mod_rewrite -> PHP URL parser -> Error 404
Отправлено: dub от 18 Ноября 2003, 02:07:00
Цитировать
MadDog:
на ура и без этого

В том-то и дело, что основная обработка происходит именно в index.php с запросами в базу и тому подобным. Обработка довольно сложная, с вызовом функций и т. д. Мне, собственно, и mod_rewrite-то понадобился, чтобы этому скрипту управление передать покорректнее.

Если б простое, статичное распараллеливание надо было сделать, я б и прописал его Rewrite Рулами, а оно в моем случае - динамическое, на основе текущего содержания базы. А вот такая незадача.