Не удается получить URL Codeigniter, работающие на Nginx

После успешной настройки nginx на моих окнах я столкнулся с еще одной проблемой. Хотя все работает как обычно. Я могу получить доступ к страницам, и PHP работает нормально, но проблема возникает, когда я пытаюсь использовать URL-адреса типа Codeigniter, под которыми, я имею в виду,

https://localhost/index.php/<controller>

Даже если я вставлю одну косую черту после "index.php" ошибка No input file specified выдается, что, я думаю, означает, что сервер FastCGI не может поймать нужный файл. Вот мой конфигурационный файл,

server {
    server_name localhost;
    listen 443; 
    root /wamp/www/;

    ssl on;
    ssl_certificate /wamp/www/server.crt;
    ssl_certificate_key /wamp/www/server.key;

    location / {        
        index index.php index.html index.htm;
    }

    location /NavHawk2 {
        try_files $uri $uri/ index.php/;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
            fastcgi_intercept_errors on;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }
}

Ничто в журналах ошибок и журналах доступа не заполнено 404 запросами. Если я удалю строку try_files, я получу страницу nginx 404.

1 ответ

Решение

Похоже, вам нужно использовать fastcgi_split_path_info,

Пример:

fastcgi_split_path_info       ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO       $fastcgi_path_info;
Другие вопросы по тегам