douer9399 2014-04-11 19:09
浏览 362
已采纳

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

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条回答 默认 最新

  • doutang0335 2014-04-11 21:15
    关注

    This would work, and you won't need to put index.php in the url

    Replace User with your actual user's home

    server {
      root /home/User/public_html/project;
      location / {
        try_files $uri $uri/ /index.php$request_uri$is_args$query_string;
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器