不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-05-21 23:49  分类:Apache/Nginx  编辑

假如 ThinkPHP 5.x 项目,在网站的一个子目录下面,如 /wenjianbao,如何设置Nginx的地址重写规则?

操作过程如下:

1、php.ini 中的配置参数 cgi.fix_pathinfo = 1

2、修改 nginx.conf 文件,

(1) 配置 fastcgi

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;

    # 下面两句才能真正支持 index.php/home/main/index 的 pathinfo 模式
    fastcgi_param   PATH_INFO            $fastcgi_path_info;
    fastcgi_param   PATH_TRANSLATED      $document_root$fastcgi_path_info;

    fastcgi_param   SCRIPT_FILENAME      $document_root$fastcgi_script_name;
    include         fastcgi_params;
}

 

(2) 去掉 /index.php/

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

 

  • 原先的URL:/wenjianbao/index.php/home/main/index
  • 现在的URL:/wenjianbao/home/main/index