O bloco location ^/MX { ... }
é colocado acima do bloco location ~ \.php$ { ... }
, o que significa que o URI /MX/main.php
não será processado como um arquivo PHP. Na verdade, você provavelmente obterá um loop de redirecionamento. Consulte este documento para saber mais.
Troque a ordem dos blocos location
ou use um local de prefixo em vez de um local de expressão regular.
Por exemplo:
location /MX {
rewrite ^/MX/?(.*)$ /MX/main.php?url=$1 last;
}
O local acima processará URIs começando com /MX
, mas não os que terminam com .php
. Além disso, houve um erro de digitação na expressão regular rewrite
.