Автор Тема: mod_rewrite -> PHP URL parser -> Error 404  (Прочитано 3773 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
mod_rewrite -> PHP URL parser -> Error 404
« : 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 можно отослать только один.

Заранее спасибо.
« Последнее редактирование: 16 Ноября 2003, 15:57:55 от dub »

Оффлайн MadDog

  • Главный Металликолог
  • Ветеран
  • *****
  • Сообщений: 679
  • +0/-0
  • 2
    • Просмотр профиля
mod_rewrite -> PHP URL parser -> Error 404
« Ответ #1 : 17 Ноября 2003, 09:37:48 »
Ну не знаю что у тебя за проблемы, но у меня такая конструкция вполне работает
ErrorDocument 404 /404.php
RewriteEngine on
.......

Правда на счёт логов я наверняка не скажу, но вот страница отображается чётко.
So let it be written
So let it be done I\'m creeping death

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
mod_rewrite -> PHP URL parser -> Error 404
« Ответ #2 : 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. Может в этом дело?

Оффлайн MadDog

  • Главный Металликолог
  • Ветеран
  • *****
  • Сообщений: 679
  • +0/-0
  • 2
    • Просмотр профиля
mod_rewrite -> PHP URL parser -> Error 404
« Ответ #3 : 17 Ноября 2003, 14:09:18 »
А ты всё таки попробуй без
Цитировать
dub:
index.php решает, есть ли такой виртуальный документ в такой виртуальной директории
.
У меня всё работает на ура и без этого.
So let it be written
So let it be done I\'m creeping death

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
mod_rewrite -> PHP URL parser -> Error 404
« Ответ #4 : 18 Ноября 2003, 02:07:00 »
Цитировать
MadDog:
на ура и без этого

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

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

 

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