解决方案:
第1步:让Nginx支持PATH_INFO,这个在网上有很多人给出配置,可惜很多不能用。下载这面这个配置文件pathinfo.conf,在你的配置文件中include下即可。因为默认这个在Nginx下是不支持的,index.php/list-2-1.html这样的网址在Nginx下报404。
点击打开链接
第2步:修改相应站点的配置文件,核心内容如下:
location ~ .*.(php/){
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
include pathinfo.conf;
}
location ~ .*.(php?){
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
需要注意的是,(php/)及(php?)后面没有常见配置中的$号
第3步:添加KingCMS所需的伪静态规则,我只写了两条
location / {
index index.htm index.html index.php default.php;
if (!-e $request_filename)
{
rewrite ^/list(.+)$ /index.php/list$1 last;
rewrite ^/page(.+)$ /index.php/page$1 last;
}
}
这个配置文件可以保存为kingcms.conf,然后在第2步配置内容前include下即可。最后,重新启动系统,看看效果如何?