У меня есть приложение, которое маршрутизирует все запросы через index.php
.
Вот мои настройки:
- Я получаю доступ к приложению в
http://www.example.com/sample/
- Вкл.файловая система, приложение находится в
/home/chris/www/sample/
- Доступный через Интернет каталог приложения находится по адресу
/home/chris/www/sample/app/web
. DocumentRoot
имеет значение /home/chris/www
/home/chris/www/sample/.htaccess
настроен следующим образом:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/sample/(.+)$
RewriteCond %{DOCUMENT_ROOT}/sample/app/web/%1 -f
RewriteRule ^/sample/(.*)$ %{DOCUMENT_ROOT}/sample/app/web/%1 [L]
RewriteRule ^(.+)$ index.php?ws_page=$1 [L,NC,QSA]
Я перепробовал несколько конфигураций, но не понял, почему я продолжаю получать 404 при вызовах «реальных» файлов.
Образец 404:
`http://www.example.com/sample/_css/960/reset.css`
(который я хочу переписать в /home/chris/www/sample/app/web/_css/960/reset.css
)
РЕДАКТИРОВАТЬ
У меня уже естьпробовал
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-l
и они не работали, потому что префикс% {REQUEST_URI} не совпадает с префиксом файловой системы этих файлов.
РЕДАКТИРОВАТЬ 2
Чтобы уточнить, я хочу, чтобы запросы вида
`http://www.example.com/sample/foo/bar`
были переписаны в объект файловой системы /home/chris/www/sample/app/web/foo/bar
, но только , если этот объект файловой системы существует.