"Редирект" посредством .htaccess

terex

Guest
"Редирект" посредством .htaccess

Хочется, чтобы при запросах ко всем несуществующим файлам апач исполнял index.php, лежащий в корне сайта. При этом не хочется использовать конструкцию вроде

ErrorDocument 404 /index.php

Так как сильно расстраивает бесконечное error 404 в логах. Есть ли способ?

А для некоторых существующих файлов (директорий) надо, чтобы при запросе к ним опять же исполнялся index.php. То есть, например, в корне сайта лежат:

index.php
some.rar
folder <папка>

Хотелось бы, чтоб при запросе чего-угодно кроме some.rar, исполнялся index.php. Важно ещё REQUEST_URI чтоб исходный сохранился, то есть mod_rewrite не годится. А когда запрашивается some.rar, надо отдать именно его, безо всяких перенаправлений.

Чего в .htaccess для этого написать надо?
 

firstVDS

Новичок
Что то я не очень понимаю чем вам mod_rewrite не угодил, он ведь умеет делать не только явные редиректы, но и внутренние (по научному называется subrequest). Вообщем не надо к реврайт рулю добавлять [R]

Содержимое .htaccess
Код:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}      !-f
RewriteRule (.*) /index.php     [L]
Вот какие у меня переменные окружения после запроса
mydom.ru/not/existing/url.html с таким .htaccess

SCRIPT_FILENAME /home/mydom.ru/htdocs/index.php
REQUEST_URI /not/existing/url.html
SCRIPT_NAME /index.php

Как видите с REQUEST_URI все в полном порядке.
 

Orlis

Guest
PHP:
RewriteCond %{DOCUMENT_ROOT}/$1 !-s
RewriteRule (.*)	index.php
аналогично приведенному, но лучше в некоторых хитрых случаях
 
Сверху