浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
时间:2022-07-27
本文章向大家介绍浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1,心血来潮,把ThinkPHP项目部署到了nginx上,以上是在apache上跑的。突然发现nginx不支持pathinfo功能,难怪在TP中调怎么都没管用。
2,开始上文件了,比网上其他一些杂的好多了:
server {
listen 80;
#listen [::]:80;
server_name www.tp.com tp.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.tp.com;
include index.php.conf;
#error_page 404 /404.html;
#include enable-php.conf;
include enable-php-pathinfo.conf; ##这个地方需要说明下:我用的是lnmp一键安装包,可能这个pathinfo.conf配置文件名有些不一样,
## 有文件名为enable-php.conf,也有enable-php-pathinfo.conf
## 目录在/usr/local/nginx/conf 可以自己去看看,带有pathinfo
#error_page 404 /404.html
location /app/ { #因为我的项目入口文件是放到app目录中的(app目录与Think目录同级),这样实现了隐藏index.php功能
if (!-e $request_filename) {
rewrite ^/app/(.*)$ /app/index.php/$1 last;
break;
}
}
location ~ ^(.+.php)(.*) {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
# include fcgi.conf;
set $real_script_name $fastcgi_script_name;
set $path_info “”;
if ($fastcgi_script_name ~ “^(.+?.php)(/.+)$”){
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root
$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
access_log /home/wwwlogs/www.tp.com.log;
}
直接上我的配置文件截图吧:
我的目录结构
看,现在可以支持以下路由了,pathinfo以及rewrite隐藏index.php入口文件
以上这篇浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考。
- Log4Net 生成多个文件、文件名累加解决方法
- 【C#|.NET】lock(this)其实是个坑
- SpringMVC过程中@RequestBody接收Json的问题 总是报415
- 如何开发自己的搜索帝国之安装ik分词器
- 如何开发自己的搜索帝国之ES图形化Kibana安装与使用
- 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备
- 分布式文件系统FastDFS如何做到高可用
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
- SpringMVC提交数据遭遇基础类型和日期类型报400错误解决方法
- 分布式监控系统Zabbix3.2对数据库的连接数预警
- 分布式监控系统Zabbix3.2监控数据库的连接数
- 分布式监控系统Zabbix3.2给异常添加邮件报警
- 分布式监控系统Zabbix3.2跳坑指南
- 一图看懂java内存模型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Head First设计模式——生成器模式和责任链模式
- Head First设计模式——蝇量模式和解释器模式
- 【每日一题】33. Search in Rotated Sorted Array
- 【每日一题】34. Find First and Last Position of Element in Sorted Array
- 【每日一题】35. Search Insert Position
- Head First设计模式——原型模式和访问者模式
- Java 新特性前瞻:封印类
- 每天手撕一道算法题-130. 被围绕的区域
- C#实现前向最大匹、字典树(分词、检索)
- Tomcat 中文乱码,设置UTF-8
- 从零搭建Spring Boot脚手架(4):手写Mybatis通用Mapper
- IDEA将Maven项目中指定文件夹下的xml等文件编译进classes
- 数据误操作,教你使用ApexSQLLog工具从 SQLServer日志恢复数据!
- 从零搭建Spring Boot脚手架(5):整合 Mybatis Plus
- SQL Server数据库阻塞,死锁查询