location ~ \.php(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

解决方案 »

  1.   

    我之前也遇到过这样的问题,你先试试,xxx.com/index.php?s=index/index/index,是否可以正常打开,如果可以,你用以下代码: location / {
    if (!-e $request_filename){
    rewrite ^/(.*)$ /index.php/$1 last;
    }
    }
    location ~ \.php($|/){
    set $script $uri;
    set $path_info “”;
    if ($uri ~ “^(.+?\.php)(/.+)$”) {
    set $script $1;
            set $path_info $2;
    }
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_param script_FILENAME $document_root$script;
    fastcgi_param script_NAME $script;
    fastcgi_param PATH_INFO $path_info;
    }
      

  2.   

    忘了说了,这个能解决linux+nginx 404问题。
      

  3.   

    在index.php/加入路由可以实现路由功能,然后在nginx.config中修改location / { }中的代码之后可以实现 public/路由 的功能。
    location / {
                index  index.html index.htm index.php l.php;
    autoindex  off;
    if ( !-e $request_filename) {
    rewrite ^/tp51/public/(.*)$ /tp51/public/index.php/$1 last;  #tp51为tp5项目的文件夹;

    break;

    }