很多人都知道,wordpress虽然功能强大,但是比较臃肿,尤其是后台体验很不好,对于优化能力和对php了解较少的人来说,这还是很难做优化的。但是国人开发的typecho这个开源博客就特别舒服,让人更专注于写作,扔掉其他没用的东西。但是typecho有一个问题,就是需要PATH_INFO但是nginx默认不开启PATH_INFO,所以需要我们手动开启PATH_INFO来支持typecho。
对于正在使用宝塔面板的我,还是比较简单,因为在设置项中有
这样我们就可以使用typecho了。
但是对于其他的情况,有如下方法
请求的网址是/abc/index.php/abc
PATH_INFO的值是/abc
SCRIPT_FILENAME的值是$doucment_root/abc/index.php
SCRIPT_NAME /abc/index.php
旧版本的nginx使用如下方式配置
location ~ .php($|/) {
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
set $path_info $2;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$script;
fastcgi_param SCRIPT_NAME $script;
fastcgi_param PATH_INFO $path_info;
}
新版本的nginx也可以使用fastcgi_split_path_info指令来设置PATH_INFO,旧的方式不再推荐使用,在location段添加如下配置。
location ~ ^.+.php {
(...)
fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
(...)
}
文章评论