sheaven

apache rewrite规则中多RewriteCond条件 转换到nginx写法

最近在迁移写应用到nginx中,在rewrite上面遇到了些问题。

虽然大部分的rewrite规则转换到nginx中几乎改动很小,但是一些特殊的比如下面这段,在nginx里面可以说完全不一样。



RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*(\.html\.xml\.css\.js\.gif\.png\.jpg\.jpeg)$.*(FCKeditor).*$.*(fckeditor).*$.*(userfiles).*.*(testadow)..*(api).*.*(passportcode).*
RewriteRule !\.(jsicogifjpgpngcss)$ /index.php
  

转换到nginx的写法(只是参照的语法,并不是上面内容的转换)



location /xxxx/ {
set $test "";

if ($request_method = POST) {
set $test P;
}

if ($http_cookie ~* "CCCC=.+(?:;$)" ) {
set $test ${test}C";
}

if ($test = PC) {
#rewrite rule goes here.
}
}

评论