Como não há um equivalente ao arquivo .htaccess (ou seja, sem arquivos de configuração no nível de diretório), é necessário atualizar a configuração principal e recarregar o nginx para que as alterações entrem em vigor.
A configuração acima do Apache essencialmente lê "se o caminho fornecido não é um arquivo ou diretório existente, redirecione para index.php, anexando o caminho".
No Nginx, você usará a diretiva try_files
para realizar a mesma coisa:
location / {
try_files $uri $uri/ @ci_index;
}
location @ci_index{
rewrite ^(.*) /index.php?$1 last;
}
Ao contrário do Apache - se as instruções forem melhor evitadas nas configurações do Nginx.
Em algumas configurações, você pode evitar o índice nomeado e reescrever e simplesmente usar /index.php
como o terceiro caminho para try_files
(e o codeigniter deve obter o caminho de $_SERVER[$config['uri_protocol']]
.
Quanto ao uso de PATH_INFO - verifique seu arquivo fastcgi_params (que você espera incluir no seu bloco de localização do php) e olhe:
fastcgi_param PATH_INFO $fastcgi_path_info;
Você também pode usar $config['uri_protocol'] = "REQUEST_URI"
Para qualquer opção escolhida, verifique a saída de print_r($_SERVER)
para verificar quais variáveis do servidor foram definidas e para o que elas foram configuradas (elas devem corresponder ao que você especificou no seu bloco de localização do PHP e no arquivo fastcgi_params ).