我已经在 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 之后。