原创

php配置PATH_INFO,php配置rewrite,php去掉index.php

1.上配置吧

虽然好久不写还是记录下 防止忘记
php的PATHINFO 路由配置核心就是nginx的一句话即

if (!-e $request_filename){
        rewrite ^(.*)$ /index.php?s=$1 last;
}

意思是请求的文件不存在则,把uri全部都是重定向到 /index.php?s=uri

完整配置

server {
       listen 80 ;
        server_name xx.xx.com;
        root /usr/local/var/www/samjiankong/;
         #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
        index index.php index.html ;
        if (!-e $request_filename){
                rewrite ^(.*)$ /index.php?s=$1 last;
        }
        location ~ .*\.(php)$ {
           # unix:/tmp/php-cgi.sock;
             fastcgi_pass  127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_split_path_info ^(.+\.php)(.*)$;
                  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                 include        fastcgi_params;
                  index  index.html index.htm;
         #    include  fastcgi.conf;
        }
}

2.二级目录配置

项目不是在nginx配置根目录的话 只需要改一行即可
假如 /var/www/ 为nginx配置的某项目跟目录,
你的php程序在/var/www/xxx/ 下 此时rewrite这么写即可!

if (!-e $request_filename){
        rewrite ^(.*)$ /xxx/index.php?s=$1 last;
}
正文到此结束
本文目录