将lighttpd转换成nginx重写规则

我努力让我的代码在nginx上工作。 这个configuration适用于lighttpd,但是我想把它迁移到nginx。

在lighttd上重写规则:

url.rewrite-once = ( "^/(ui)/(.*)$" => "/gi.php/$1/$2", "/(.*)\.(.*)" => "$0", "/(xhr|js-api)/(.*)" => "$0", "^/([^.]+)$" => "/gi.php/$1" ) 

任何人都可以帮助在这个转换? 我尝试了很多东西,包括将其转换为Apache重写规则,但没有一个工作。

Nginx规则:

 if (!-f $request_filename){ set $rule_0 1$rule_0; } if (!-d $request_filename){ set $rule_0 2$rule_0; } if ($rule_0 = "21"){ rewrite ^/(.*)$ /gi.php/$1 last; } Error : 404 

有什么build议么?

你通常不会在nginx中重写,就像你在Apache或者lighttpd中一样。 大多数这样的事情应该用try_files代替。

一个简单的例子:

 try_files $uri $uri/ /gi.php 

有关更多详细信息,请参见nginx文档。