rewrite

Vasyl Kondrashov vasyl.kondrashov at gmail.com
Fri Jan 30 13:25:16 MSK 2009


Доброго времени суток!

Понадобилось перевсти для nginx следующие правила apache:
RewriteRule ^$ /index.php [L]
RewriteCond $1 !^(index\.php|install|img|smarty|images|scripts|fonts|uploads|css|js|robots\.txt|sitemap\.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
RewriteRule (.*)-(.*)\.html$ wallpapers/show/$2
RewriteRule (.*)-(.*)/$ categories/show/$2
RewriteRule (.*)-(.*)\/(.*)$ categories/show/$2/$3


Получается конструкция типа:

rewrite ^$ index.php last;
...
rewrite (.*)-(.*)\.html$ wallpapers/show/$2
rewrite (.*)-(.*)/$ categories/show/$2
rewrite (.*)-(.*)\/(.*)$ categories/show/$2/$3


В принципе, понятно, для QSA прописываю "fastcgi_param QUERY_STRING
$request_uri;"

но второе правило с условием - никак, получаются либо вложенные if,
либо "location !~..."
Насколько я понимаю, "!" и вложенные if  не работают - а как вывернуть
это наизнанку - ума не приложу :(
Может кто сталкивался с чем-то подобным?


More information about the nginx-ru mailing list