nginx安装typecho后台访问报404的解决方法

2017年3月17日 1.8k 次阅读 0 条评论 0 人点赞

很多人都知道,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;
  (...)
}

 

菜鸟

文章评论(0)