假如 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