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

URL-адрес Codeigniter работает только для маршрутизатора по умолчанию

Я установил Codeigniter на Nginx с такой конфигурацией:

server {
listen       80;
server_name  myserver;

root /usr/share/nginx/html;
index index.php index.html index.htm;
error_log /var/log/nginx/localhost.error_log debug;
 location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
            expires max;
            log_not_found off;
    }
location / {
    try_files $uri $uri/ /index.php?/$request_uri;
        location = /index.php {

            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
            include        fastcgi_params;
        }
}

location ~ /\.ht {
    deny  all;
    }
}

Я также изменил конфигурацию на ceodeignigter таким образом:

...
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
...

это мой контроллер по умолчанию:

<?php

class Index extends CI_Controller {
    public function __construct(){
            parent::__construct();
    }
    public function index(){
        $this->load->view('index');
    }
}

Я могу получить доступ к своему контроллеру по умолчанию, который я определил в файле router.php, но я пока не могу получить доступ к другим контроллерам. любая помощь будет признательна.

я использую

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

и это работает. Вы также можете добавить

try_files /index.php$request_uri;

в конце. Здесь нет ? после index.php в CI.