проблема с RewriteRules в modrewrite

malcolm

Новичок
проблема с RewriteRules в modrewrite

сервер был на iis 5.1 с ISAPI-rewriter'ом, на нём я использовал такие правила:
--------------------------------------
RewriteRule (.*)(robots.txt|sitemap.xml) /$2 [L]
RewriteRule (.*)(soundcontroller.swf|sound-config.xml) /data/$2 [L]
RewriteRule (.*)(js)/(.*) /$2/$3 [L]
RewriteRule (.*)(_forum|_sql|_counter|_chat|_sqlm|_llbox)/(.*) /$2/$3 [L]
RewriteRule (.*)(image|css|uploads|modules|includes|data|audio)/(.*) /$2/$3 [L]
RewriteRule (.*)\?(.*) /index.php?rewriteurl=$1&$2 [L]
RewriteRule (.*) /index.php?rewriteurl=$1
--------------------------------------
всё было ок, пока админ не решил поставить linux/apache 1.3. правила перестали пахать и приходиться переписывать. вот мой текущая перепись:
--------------------------------------
RewriteEngine On
RewriteRule ^(.*)(robots.txt|sitemap.xml)$ /$2 [L]
RewriteRule ^(.*)/(soundcontroller.swf|sound-config.xml)$ /data/$2 [L]
RewriteRule ^(.*)/(js)/(.*)$ /$2/$3 [L]
RewriteRule ^(.*)/(_forum|_sql|_counter|_chat|_sqlm|_llbox)/(.*)$ /$2/$3 [L]
RewriteRule ^(.*)/(image|css|uploads|modules|includes|data|audio)/(.*)$ /$2/$3 [L]
RewriteRule ^(.*)\?(.*)$ index.php?rewriteurl=$1&$2 [L]
RewriteRule ^(.*)$ index.php?rewriteurl=$1 [QSA,L]
---------------------------------------
впринципе работает, но при обработке url не происходит прерывания [L], хотя должно.
т.е. если страница например
http://localhost/articles/xfiles/myth переходит в http://localhost/index.php?rewriteurl=articles/xfiles/myth но css стили на странице не отображаются, т.к. url
http://localhost/articles/xfiles/myth/css/new_style.css переходит в http://localhost/index.php?rewriteurl=css/new_style.css а должно быть http://localhost/css/new_style.css

может быть криво написал... не судите строго, просто помогите, я уже голову сдурил всё. 100% какойто мелкий глюк, но найти не магу...
заранее спасибо
 

malcolm

Новичок
не помогает... пробовал, просто дело не только в css. всё что запрашивает страница переходит в http://localhost/index.php?rewriteurl=<запрос>, вот. а должен прерываться хадолго до того....
 

tecgnotes

Новичок
А может просто
RewriteRule ^(.*)/(image|css|uploads|modules|includes|data|audio)/(.*)$ - [L]
И вообще не проводить обработку css и пр
 

MadGreen

meninweb
malcolm абсолютный путь и твое правило (строку из которого заметил tecgnotes) вещи несовместимые...
или одно или другое
 

tecgnotes

Новичок
Тогда наверное надо эксперементировать с RewriteCond
Например так
RewriteCond %{REQUEST_URI} !^(.*)/(image|css|uploads|modules|includes|data|audio)/(.*)$
и дальше про css итп
 

tecgnotes

Новичок
ГЫ сам столкнулся с подобной проблемой с повторным срабатыванием - так пока и не решил.
В доках написано что после проведения преобразований с УРЛом он прогоняется по правилам еще раз. В Вашем случае преобразование подпадает под последнее правило. Те если я все правильно понимаю то на первую обработку last влияет а на повторную - нет:(
Возможно я не до конца постиг мод_рерайт и сам бы оч хотел услышать толковое объяснение как не допустить повторного преобразования на уровне синтаксиса правил (гдето видел патчи на уровне модуля, ограничивающие срабатывания)
 
Сверху