mod_rewrite - добавить путь к переменной REQUEST_FILENAME - PullRequest
2 голосов
/ 24 октября 2011

Вот мой код:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond application/public/%{REQUEST_FILENAME} -f 
RewriteRule (.*) application/public/$1 [L]

Я хочу сделать выражение:

  • Если файл {REQUEST_FILENAME} не существует И если файлapplication/public/%{REQUEST_FILENAME} существует переписать

Пример результатов:

  • / style.css = /application/public/style.css
  • / gfx / logo.png = /application/public/gfx/logo.png
  • / index.php = /index.php
  • / Welcome = /index.php?input=Добро пожаловать (это работает)

Что такое правильный код для этого выражения?Я думаю, что мне нужно изменить строку:

RewriteCond application/public/%{REQUEST_FILENAME} -f 

Но я не имею ни малейшего представления, как ...

Полный список .htaccess:

RewriteEngine on

RewriteRule style,(.+).css tmp/merged/css,$1 [L,QSA]
RewriteRule script,(.+).js tmp/merged/js,$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond application/public/%{REQUEST_FILENAME} -f 
RewriteRule (.*) application/public/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) index.php?input=$1 [L,QSA]

(извините за мой английский)

1 Ответ

0 голосов
/ 24 октября 2011

Я нашел небольшой обходной путь, но это не элегантное решение: (

RewriteEngine on

# Access to files in ./application/public
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) application/public/$1 [DPI]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule application/public/(.*) $1 [DPI]

# Main rewrite
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) index.php?input=$1 [L,QSA,DPI] 
...