Есть вот такой нестандартный роутинг:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#project settings (1)
RewriteRule ^([A-Za-z0-9-]+)/editusers$ editusers.php?project=$1 [L,QSA]
#any project map (2)
RewriteRule ^([A-Za-z0-9-]+)/([^/]+)$ view.php?project=$1&map=$2 [L,QSA]
#any project, any map, edit
RewriteRule ^([A-Za-z0-9-]+)/([^/]+)/edit$ edit.php?project=$1&map=$2 [L,QSA]
#root rules
RewriteRule ^login$ auth.php?action=login [L,QSA]
#project info
RewriteRule ^([A-Za-z0-9-]+)$ info.php?project=$1 [L,QSA]
Все работает, как хотелось бы, но
все запросы к
/backend/*.php перенаправляется на
view.php?project=backend&map=...
Переставляю местами строчки
#any project map (2)
RewriteRule ^([A-Za-z0-9-]+)/([^/]+)$ view.php?project=$1&map=$2 [L,QSA]
#project settings (1)
RewriteRule ^([A-Za-z0-9-]+)/editusers$ editusers.php?project=$1 [L,QSA]
поведение меняется на диаметрально противоположное:
/project/editusers превращается в
view.php?project=project&map=editusers
Я понимаю, что скорее всего все работает правильно (то есть как написал - так и работает), но как его победить?
Мне нужно, чтобы
все запросы к
/backend/*.php направлялись именно на файлы /backend/*.php , а не куда попало.
RewriteCond %{REQUEST_URI} !^/backend/
(в разных, похожих вариациях) добавленный в блок кондишенов (до, после, между, неважно) не меняет ровным счетом ни-че-го.
При этом js'ки и css'ки из fronend/*.* грузятся совершенно нормально.
И, да, я на 100% уверен, что запрашиваемый файл в /backend/ существует! (ведь в одном варианте он нормально запрашивается, а в другом - нет!)
Третий день уже о монитор бьюсь. RTFM делал, гугл читал, коллег мучал.
ЧЯДНТ?
Спасибо!