Я установил 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.