douer9399
douer9399
2014-04-11 19:09

nginx和codeigniter“传递uri”不起作用

  • nginx
  • codeigniter
  • php

I've a small Codeigniter project and passing uri (localhost/project/index.php/Cfoo/funct/param) doesn't work (404). The php-code is OK, because with lighttpd works.

My nginx config:

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;
        }
    }
}

EDIT A server section:

    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条回答

为你推荐

换一换