THINKPHP 有如下URL访问模式可以定义;默认是 PATHINFO模式
// URL 模式定义
const URL_COMMON = 0; //普通模式
const URL_PATHINFO = 1; //PATHINFO模式
const URL_REWRITE = 2; //REWRITE模式
const URL_COMPAT = 3; // 兼容模式
正式部署时建议设置为 REWRITE模式 ,对应的NGINX的配置如下:
location / {
try_files $uri $uri/ /index.php?s=$uri&$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi.conf;
}
以上配置实际走的还是 THINKPHP 所谓的兼容模式,好处是你不需要“费尽心机”的去解决PHP和NGINX对 PATHINFO 的支持问题了。
如果你不想限制别人通过/index.php?s=XXX 访问, 可以把 'VAR_PATHINFO' => 's', 改成其他的譬如: 'VAR_PATHINFO' => 'XXX', 相应的 try_files $uri $uri/ /index.php?s=$uri; 中的 s 也改成 XXX 就可以了。