Forum Webscript.Ru
Общие => Веб Сервера => Тема начата: 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 можно отослать только один.
Заранее спасибо.
-
Ну не знаю что у тебя за проблемы, но у меня такая конструкция вполне работает
ErrorDocument 404 /404.php
RewriteEngine on
.......
Правда на счёт логов я наверняка не скажу, но вот страница отображается чётко.
-
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. Может в этом дело?
-
А ты всё таки попробуй без
dub:
index.php решает, есть ли такой виртуальный документ в такой виртуальной директории
.
У меня всё работает на ура и без этого.
-
MadDog:
на ура и без этого
В том-то и дело, что основная обработка происходит именно в index.php с запросами в базу и тому подобным. Обработка довольно сложная, с вызовом функций и т. д. Мне, собственно, и mod_rewrite-то понадобился, чтобы этому скрипту управление передать покорректнее.
Если б простое, статичное распараллеливание надо было сделать, я б и прописал его Rewrite Рулами, а оно в моем случае - динамическое, на основе текущего содержания базы. А вот такая незадача.