Связка ErrorDocument и RewriteRule

K
На сайте с 18.11.2008
Offline
84
648

Вечер добрый. Возникла такая проблема - при ошибке 404 хочу выдавать определенную страницу. Код .htaccess такой:

ErrorDocument 404 http://www.site.ru/404/

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru [NC]

RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*) index.php

Что не так? перекидывает на главную страницу сайта.

DI
На сайте с 03.01.2007
Offline
123
#1

mod_rewrite - это указание к действию, а ErrorDocument - это всего лишь дополнение к конфигу. Соответственно, mod_rewrite отрабатывает на всех запросах, пересылая посетителя на index.php.

Если он вдруг не перешлет (по условиям) - то под конец выполнения уже сработает стандартная 404-ая страница.

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
K
На сайте с 18.11.2008
Offline
84
#2

Понял. А в данной ситуации какой выход?

K
На сайте с 18.11.2008
Offline
84
#3

Так никто ничего и не может сказать? Жаль...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий