typecho 404 问题解决方案
这是nginx的设置时没有注意支持pathinfo导致的,具体关于php pathinfo的信息可以在网上搜索到。
以下是该问题的解决方案
使用lnmp一键安装包安装的 Nginx
进入Nginx配置文件夹
cd /usr/local/nginx/conf/
备份 enable-php.conf
文件
cp ./enable-php.conf ./enable-php.conf.bak
修改 enable-php.conf
文件
nano ./enable-php.conf
在结尾大括号前添加如下内容:
include pathinfo.conf;
修改后文件内容为:
location ~ [^/]\.php(/|$)
{
#try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
如果提示nano
命令不存在,可使用
sudo apt-get install nano
或
sudo yum install nano
安装nano程序
重启lnmp环境
lnmp restart
自行安装的Nginx
一般的出现这种情况时,nginx.conf里的的location设置都是类似这样
location ~ .*\.php$
要支持pathinfo,要改成
location ~ .*\.php(\/.*)*$
然后在location里加上
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
在某些老版本的php里面,可能还要打开php.ini里的cgi.fix_pathinfo
cgi.fix_pathinfo = 1
设置完之后重启服务器