Общие > Веб Сервера

mod_rewrite -> PHP URL parser -> Error 404

(1/1)

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

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

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

Заранее спасибо.

MadDog:
Ну не знаю что у тебя за проблемы, но у меня такая конструкция вполне работает

--- Код: ---ErrorDocument 404 /404.php
RewriteEngine on
.......

--- Конец кода ---

Правда на счёт логов я наверняка не скажу, но вот страница отображается чётко.

dub:
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. Может в этом дело?

MadDog:
А ты всё таки попробуй без
--- Цитировать ---dub:
index.php решает, есть ли такой виртуальный документ в такой виртуальной директории
--- Конец цитаты ---
.
У меня всё работает на ура и без этого.

dub:

--- Цитировать ---MadDog:
на ура и без этого
--- Конец цитаты ---

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

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

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии