nginx php url重写(thinkphp6 nginx)

我在网上搜索了很多方法,但没有一个有效。研究了一天,发现通过下面的配置可以完美支持'URL_MODEL'=2的情况。复制code代码如下:位置/项目/{索引index.php;if(!-e$request_filename){最后重写^/p...

我在网上搜索了很多方法,但没有一个有效。研究了一天,发现通过下面的配置可以完美支持'URL_MODEL'=2的情况。

复制code代码如下:

nginx php url重写(thinkphp6 nginx)

位置/项目/{

索引index.php;

if (!-e $request_filename) {

最后重写^/project/(.*)$ /project/index.php/$1;

休息;

}

}

位置~ .+\.php($|/) {

设置$script $uri;

设置$path_info '/';

if ($uri ~ '^(.+\.php)(/.+)') {

设置$脚本$1;

设置$path_info $2;

}

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php?IF_REWRITE=1;

包括/APMSer/nginx/conf/fastcgi_params;

fastcgi_param PATH_INFO $path_info;

fastcgi_param SCRIPT_FILENAME $document_root/$script;

fastcgi_param SCRIPT_NAME $脚本;

}

这里,项目下的所有请求都会转发到index.php进行处理,该文件是ThinkPHP的单入口文件;然后将PHP文件的请求交给fastcgi处理,并添加对PATH_INFO的支持。重启Nginx后,可以正确访问http://localhost/project/Index/insert、http://localhost/project/index.php/Index/delete等URL。另外需要注意的是Nginx配置文件中if和后面的括号之间一定要有空格,否则会报未知指令错误。

相关推荐

返回顶部