关于1Panel面板typecho的伪静态配置和开启问题
核心原因
Panel默认的Nginx PHP解析配置不支持PATHINFO,而Typecho的伪静态机制依赖PATHINFO才能正确解析index.php/action/xxx这类地址 。
在1Panel后台“设置伪静态”通常只是导入了重写规则(rewrite ^(.*)$ /index.php$1 last;),但没有同时修改PHP的location解析块。Nginx收到伪静态后的URL(如/index.php/action/options-permalink)时,找不到能处理/路径参数的PHP配置,所以直接返回了404。
(PS:可以在网站配置中直接用typecho的预设,如图的方案)
解决步骤
那我们应该怎么开启真正的伪静态呢?
我们知道1Panel使用的是OpenResty + 容器化PHP环境。关键点是:OpenResty作为前端代理,与标准Nginx配置不同。
那我们着手编辑OpenResty这个前端的配置文件即可,将配置文件里的找到 location ~ .php$ 这一段,完全替换。使用代码如下:
# PHP解析配置 - 支持PATHINFO(解决Typecho伪静态问题)
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
# PATHINFO核心配置
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;
fastcgi_param DOCUMENT_ROOT $document_root;
}
配置好的截图

最后再去后台>设置>永久链接>打开是否使用地址重写功能就不会报错404了。
虽然作者的初衷是为了sitemap,但是请记住,不打开伪静态是没办法使用网站地图的(悲啊)
本文由 tree 发布于 2026年2月14日,采用 CC BY-NC-SA 4.0 许可,转载请注明出处。
评论
评论加载中…