Я использую Iirf v2.0 .
У меня следующая структура каталогов:
/
/library
/library/index.php
/webroot
/webroot/images
/Iirf.ini
Где у меня есть папка библиотеки, в которой находится мое приложение, папка webroot (которая содержит изображения, таблицы стилей и т. д.) и файл конфигурации Iirf.ini.
Я хочу перенаправить все запросы в /library/index.php , если файлне существует в webroot.
например:
Request Response
/images/blah.png -> /webroot/images/blah.png
/news -> /library/index.php
Моя конфигурация Iirf.ini имеет:
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /library/index.php [L]
, которая перенаправляет все на /library/index.php
, но я 'Я не могу понять, как проверить, существует ли REQUEST_FILENAME
в webroot.
Я смотрел на этот вопрос , но у меня нет доступа к DOCUMENT_ROOT
.Это дает мне следующее (взято из журнала):
Thu Jul 15 11:46:21 - 760 - ReplaceServerVariables: VariableName='REQUEST_FILENAME' Value='C:\web\favicon.ico'
Thu Jul 15 11:46:21 - 760 - ReplaceServerVariables: in='%{DOCUMENT_ROOT}/webroot/%{REQUEST_FILENAME}' out='DOCUMENT_ROOT/webroot/C:\web\favicon.ico'
Любая помощь будет принята с благодарностью.
--- РЕДАКТИРОВАТЬ -
Я обновил мой конфиг после прочтения и предложил Тиму:
RewriteCond $0 !^/webroot
RewriteRule ^.*$ /webroot$0 [I]
RewriteCond $0 !-f
RewriteRule ^/webroot/(.*)$ /library/index.php [I,L,QSA]
И он корректно переходит на /library/index.php
, но все равно не проверяет существующий файл (хотякажется, что это так).
Thu Jul 15 14:47:30 - 3444 - EvalCondition: checking '/webroot/images/buttons/submit.gif' against pattern '!-f'
Thu Jul 15 14:47:30 - 3444 - EvalCondition: cond->SpecialConditionType= 'f'
Thu Jul 15 14:47:30 - 3444 - EvalCondition: Special: it is not a file
Я думаю, что мне придется связаться с автором фильтра.