Задать вопрос
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]

  • Вопрос задан
  • 2730 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
zooks
@zooks
Frontend
RewriteRule ^old-path$ new-path [R=301,L]
Ответ написан
Комментировать
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:
является ли каталогом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы