Задать вопрос
yparah
@yparah

Как перенаправить Apache раньше чем он объявит 404 ошибку?

Как при помощи mod_rewrite перенаправить Апач на другой файл, не объявляя при этом 404 ошибку?

Сейчас в .htaccess стоит строка вида ErrorPage 404 /index.php

Апач обрабатывает ошибку, пишет об этом в лог и передает управление index.php, который обрабатывает запрос.

Содержимое .htaccess

AddDefaultCharset UTF-8

Options +FollowSymLinks +ExecCGI
ErrorDocument 404 /index.php

RewriteEngine On

#Hides backend and its static content from all domains except 1
RewriteCond %{REQUEST_URI} !^/index.php$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_HOST} !^.*$
RewriteRule ^(.*)$ - [R=404,L]

#No script name
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

  • Вопрос задан
  • 2747 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Игорь К ответам на вопрос (2)
merryjane
@merryjane
Системный администратор
Смотря по какому условию. Вот пример:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /file_to_rewrite.php [L]
</IfModule>

где %{REQUEST_FILENAME} !-f - не файл,
%{REQUEST_FILENAME} !-l - не символическая ссылка,
%{REQUEST_FILENAME} !-d - не каталог,
/file_to_rewrite.php - собственно, куда реврайтим.

Выбираейте как Вам больше подходит.

Подробнее по RewriteCond:
является ли каталогом
Ответ написан
Комментировать