nginx和codeigniter"传递uri"不起作用

时间:2014-04-11 19:09:15

标签: php codeigniter nginx

我有一个小的Codeigniter项目,而passing urilocalhost/project/index.php/Cfoo/funct/param)不起作用(404)。 php代码没问题,因为lighttpd工作正常。

我的nginx配置:

user  www www;
worker_processes 1;
worker_priority 15;

pid /var/run/nginx.pid;

events {
  worker_connections  512;
  accept_mutex on;
  use kqueue;
}

http {
    include       conf.d/options;
    include       mime.types;
    default_type  application/octet-stream;

    server {

        server_name localhost;
        index index.php index.html index.htm ;

        add_header  Cache-Control "public";
        add_header  X-Frame-Options "DENY";
        limit_req   zone=gulag burst=200 nodelay;
        expires     max;
        listen 80;

        root /usr/local/www;

        location ~ ^/~([^/]+)/(.+\.php)$ {
            if (!-f /home/$1/public_html/$2) {
                rewrite ^ 404;
            }
            alias /home/$1/public_html/$2;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            include fastcgi_params;
        }
        location ~ ^/~(.+?)(/.*)?$ {
            alias /home/$1/public_html$2;
            index  index.html index.htm index.php;
            autoindex on;
        }


        location /adminer {
            index adminer/index.php;
        }


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

        index index.php index.html index.htm ;

        location ~ \.php$ { include conf.d/php-fpm; }
        location = /favicon.ico { return 204; }
        location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ { deny all; }
        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }
    }
}

编辑服务器部分:

    server {
        server_name orarend;
        root /home/zsolt/public_html/orarend_oo/;
        index index.php;
        add_header  Cache-Control "public";
        add_header  X-Frame-Options "DENY";
        limit_req   zone=gulag burst=200 nodelay;
        expires     max;
        location / {
            try_files $uri $uri/ /index.php$request_uri$is_args$query_string;
            autoindex on;
            fastcgi_pass unix:/var/run/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            include fastcgi_params;
        }
        location ~ \.php$ { include conf.d/php-fpm; }
    }

1 个答案:

答案 0 :(得分:1)

这样可行,您不需要将index.php放入网址

User替换为您实际用户的主页

server {
  root /home/User/public_html/project;
  location / {
    try_files $uri $uri/ /index.php$request_uri$is_args$query_string;
  }
}