Назад | Перейти на главную страницу

преобразовать правила перезаписи lighttpd в nginx

Я очень стараюсь, чтобы мой код работал на nginx. Эта конфигурация работает с 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

Какие-либо предложения?

Обычно вы не выполняете перезапись в nginx так же, как в Apache или lighttpd. Большинство таких вещей следует заменить на try_files вместо.

Тривиальный пример:

try_files $uri $uri/ /gi.php

Подробности смотрите в документации nginx.