Codeigniter URL 仅适用于默认路由器

Codeigniter URL 仅适用于默认路由器

我已经在 Nginx 上安装了 Codeigniter,配置如下:

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 文件中定义了它,但我还不能访问其他控制器。如能得到任何帮助我将不胜感激。

答案1

我用

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

并且成功了。您还可以添加

try_files /index.php$request_uri;

在最后。没有在 CI 中的 index.php 之后。

相关内容