Я очень стараюсь, чтобы мой код работал на 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.