介绍
这篇文章主要介绍了ThinkPHP中nginx配置有哪些坑,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强> ThinkPHP的nginx配置踩坑强>
今天在用一个以tp为基础的快速开发框架时遇到一些问题:
nginx报错截图
为了方便说明进行手动换行
//,处理时重写或内部重定向循环 2019/11/11 11:16:06 (错误),15164 # 15432:,* 1,rewrite 或是internal redirection cycle while processing ,,,,/index . php/index . php/index . php/index . php/index . php/index . php/index . php/index . php/索引/user/index.html",, ,,,客户:,127.0.0.1,, ,,,服务器:,xxxxx,, ,,,要求:,“GET //user/index.html 指数;HTTP/1.1“,, ,,,主持人:,“xxxxx",, ,,,介绍人:,“xxxxx"<人力资源/>
<强>错误配置强>
参考larvael配置
server { ,,,。 ,,,。 ,,,。 ,,,的位置/,{ ,,,,,,,try_files uri 美元;$ uri/,/index . php ? query_string美元; ,,,} ,,,。 ,,,。 ,,,。 ,,,的位置~,\美元。php, { ,,,,,,,fastcgi_pass127.0.0.1:9000; ,,,,,,,fastcgi_index index . php。 ,,,,,,,fastcgi_param SCRIPT_FILENAME realpath_root fastcgi_script_name美元; ,,,,,,,include fastcgi_params; ,,,} ,,,。 ,,,。 ,,,。 }
发现所有路径都一样,都是首页效果
初步判断nginx重写规则有问题
#,路径,/,开头之后都走这个匹配 #,如,/index /索引/user 位置/,{ ,,,#,uri 美元;本地有就返回,或者uri/美元,本地有目录就返回,或者走后面的重写 ,,,#,本地是指在网站根目录下,如,当,uri=index 美元就是看根目录下面有,index 文件或者,索引/,目录 ,,,try_files uri 美元;$ uri/,/index . php ? query_string美元; }
开始报错
<人力资源/> <强>解决问题强>
网上查询后tp5的配置应为
,,,,的位置/,{ ,,,,,,,try_files uri 美元;$ uri/,/index . php uri美元; ,,,}
改后,发现问题没解决;对比配置发现
,,#,位置~,\美元。php,改成,,的位置~,美元\。php (. *) ,,,的位置~,美元\。php (. *), { ,,,,,,,,,,fastcgi_pass  127.0.0.1:9000; ,,,,,,,fastcgi_index index . php。 ,,,,,,,fastcgi_split_path_info , ^ (U (?)。+ \。php)美元(/?。+); ,,,,,,,fastcgi_param , SCRIPT_FILENAME , document_root fastcgi_script_name美元; ,,,,,,,fastcgi_param , PATH_INFO , fastcgi_path_info美元; ,,,,,,,fastcgi_param , PATH_TRANSLATED , document_root fastcgi_path_info美元; ,,,,,,,include fastcgi_params; ,,,}
解决,完整配置
server { ,,,listen ,,,,,, 80; ,,,server_name , xxxxxxx ; ,,,root , www。 ,,,add_header X-Frame-Options “SAMEORIGIN"; ,,,add_header X-XSS-Protection “1;,模式=block"; ,,,add_header X-Content-Type-Options “nosniff"; ,,,charset utf - 8; ,,,index index.html index.htm index . php。 ,,,的位置/,{ ,,,,,,,try_files uri 美元;$ uri/,/index . php uri美元; ,,,} ,,,的位置=,/favicon.ico {, access_log ;, log_not_found ,,} ,,,的位置=,/robots.txt , {, access_log ;, log_not_found ,,} ,,,error_page 404年,/index . php; ,,,的位置~,美元\。php (. *), { ,,,,,,,,,,fastcgi_pass  127.0.0.1:9000; null null null null null null null null null null nullThinkPHP中nginx配置有哪些坑