如何设置phpEnv以启用PathInfo路径解析功能?

2026-05-07 11:390阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计647个文字,预计阅读时间需要3分钟。

如何设置phpEnv以启用PathInfo路径解析功能?

《原创内容如下:

nginx location 块必须重写匹配逻辑

phpEnv 的默认 nginx 配置用的是 location ~ \.php$,这种写法会严格匹配以 .php 结尾的请求,根本不会把 /index.php/abc/def 这类路径交给 PHP 处理 —— 它直接 404 或返回静态文件。

你需要改成能捕获 pathinfo 的正则,并手动提取 SCRIPT_NAMEPATH_INFO

  • 把原配置中类似 location ~ \.php$ { ... } 的块,替换成 location ~ \.php(/|$) { ... }
  • 在该 block 内添加 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  • 紧接着设置 fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  • 务必确认 fastcgi_param SCRIPT_FILENAME 指向的是真实 PHP 文件路径(如 $document_root$fastcgi_script_name),不是拼出来的假路径

php.ini 必须开启 cgi.fix_pathinfo=1

即使 nginx 正确传了 PATH_INFO,PHP 本身也会在内部做一次路径截断。

阅读全文
标签:phpenvPHP

本文共计647个文字,预计阅读时间需要3分钟。

如何设置phpEnv以启用PathInfo路径解析功能?

《原创内容如下:

nginx location 块必须重写匹配逻辑

phpEnv 的默认 nginx 配置用的是 location ~ \.php$,这种写法会严格匹配以 .php 结尾的请求,根本不会把 /index.php/abc/def 这类路径交给 PHP 处理 —— 它直接 404 或返回静态文件。

你需要改成能捕获 pathinfo 的正则,并手动提取 SCRIPT_NAMEPATH_INFO

  • 把原配置中类似 location ~ \.php$ { ... } 的块,替换成 location ~ \.php(/|$) { ... }
  • 在该 block 内添加 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  • 紧接着设置 fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  • 务必确认 fastcgi_param SCRIPT_FILENAME 指向的是真实 PHP 文件路径(如 $document_root$fastcgi_script_name),不是拼出来的假路径

php.ini 必须开启 cgi.fix_pathinfo=1

即使 nginx 正确传了 PATH_INFO,PHP 本身也会在内部做一次路径截断。

阅读全文
标签:phpenvPHP