如何设置Nginx以适配ThinkPHP的URL重写规则?
- 内容介绍
- 文章标签
- 相关推荐
本文共计973个文字,预计阅读时间需要4分钟。
如果您已经将ThinkPHP项目部署至Nginx服务器,但在访问时发现无需携带index.,可能的原因如下:
一、标准try_files方案(推荐用于ThinkPHP 6.x)
该方案利用try_files指令实现原子化路径匹配,避免rewrite循环,兼容QUERY_STRING传递,是TP6官方推荐方式。它优先尝试匹配真实静态资源,失败后统一交由index.php处理,并保留原始查询参数。
1、编辑站点server块,在location /内添加以下规则:
2、try_files $uri $uri/ /index.php?$query_string;
立即学习“PHP免费学习笔记(深入)”;
3、确保location ~ \.php$块中fastcgi_param SCRIPT_FILENAME值为$document_root$fastcgi_script_name,严禁使用$request_filename。
4、确认PHP-FPM监听地址与fastcgi_pass配置一致(如unix:/var/run/php/php8.1-fpm.sock或127.0.0.1:9000)。
本文共计973个文字,预计阅读时间需要4分钟。
如果您已经将ThinkPHP项目部署至Nginx服务器,但在访问时发现无需携带index.,可能的原因如下:
一、标准try_files方案(推荐用于ThinkPHP 6.x)
该方案利用try_files指令实现原子化路径匹配,避免rewrite循环,兼容QUERY_STRING传递,是TP6官方推荐方式。它优先尝试匹配真实静态资源,失败后统一交由index.php处理,并保留原始查询参数。
1、编辑站点server块,在location /内添加以下规则:
2、try_files $uri $uri/ /index.php?$query_string;
立即学习“PHP免费学习笔记(深入)”;
3、确保location ~ \.php$块中fastcgi_param SCRIPT_FILENAME值为$document_root$fastcgi_script_name,严禁使用$request_filename。
4、确认PHP-FPM监听地址与fastcgi_pass配置一致(如unix:/var/run/php/php8.1-fpm.sock或127.0.0.1:9000)。

