首页 > 代码库 > nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法
nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法
将一个thinkphp项目从apache环境移到nginx1.2上,怎奈,nginx这个版本默认不支持pathinfo模式
首先,编辑nginx的虚拟主机配置文件
location ~ .*.(php|php5)?$ { #原有代码 }
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
#去掉$是为了不匹配行末,即可以匹配.php/,以实现pathinfo #如果你不需要用到php5后缀,也可以将其去掉 location ~ .php { #原有代码 #定义变量 $path_info ,用于存放pathinfo信息 set $path_info ""; #定义变量 $real_script_name,用于存放真实地址 set $real_script_name $fastcgi_script_name; #如果地址与引号内的正则表达式匹配 if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { #将文件地址赋值给变量 $real_script_name set $real_script_name $1; #将文件地址后的参数赋值给变量 $path_info set $path_info $2; } #配置fastcgi的一些参数 fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; }
以上是在网上找的答案,事实上,只是加了这一段就可以了
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
参考http://doc.thinkphp.cn/manual/hidden_index.html
nginx低版本不支持pathinfo模式,thinkphp针对此问题的解决办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。