typecho rewrite 静态地址重写功能导致的页面无法访问或403 Forbidden

目录

最近研究了下typecho 在使用的过程 因为 Rewrite静态地址重写 折腾了半天..

研究了半天发现是nginx Rewrite静态地址重写规则 问题导致的

一. BUG复现的条件是:**
  • 在nginx内添加官方 Rewrite静态地址重写规则
  • 环境是nginx
  • 后台设置中**“是否使用地址重写功能”**
    • 关闭 导致 前台,后台功能无法使用
    • 开启 导致后台 部分功能无法使用
二. BUG产生原因
  • typecho路由机制没有考虑nginx的一些特性导致的
三. 修复过程

官方提供的nginx rewrite规则

if (!-e $request_filename) {
  rewrite ^(.*)$ /index.php$1 last;
}

修改为

if (!-e $request_filename) {
  rewrite ^(.*)$ /index.php?$1 last;
}

nginx 站点server怎么修改 请自行Goole