# ────────────────────────────────────────────────────────────────
# 蜜蜂AI建站 · 静态优先伪静态规则（适合开启「全量静态发布」后的站群）
# 用法：复制本文件全部内容到宝塔站点「伪静态」框中保存即可
#
# 工作原理：
# 1. 带 ?page= / ?q= 等查询串的请求强制走 PHP（动态分页 / 搜索）
# 2. 优先尝试读取 site/{当前域名}/$uri.html 等静态文件，命中则 0 PHP 开销直接返回
# 3. 找不到静态文件才回落到 PHP 实时渲染（PHP 内还有第二层兜底）
# ────────────────────────────────────────────────────────────────

# 动态 robots.txt / sitemap（必须走 PHP，每个域名内容不同）
rewrite ^/robots\.txt$ /index.php last;
rewrite ^/sitemap\.xml$ /index.php?slug=sitemap.xml last;
rewrite ^/sitemap\.html$ /index.php?slug=sitemap.html last;

# 真实文件存在则直接返回，不走伪静态重写（如 /document/*.html、/assets/*.css 等）
if (-f $request_filename) {
    break;
}

# 带分页 / 搜索查询串的强制走 PHP（不走静态）
if ($args ~ "(^|&)(page|q)=") {
    rewrite ^/(.*)$ /index.php?slug=$1 last;
}

# 静态优先：先尝试 site/{HOST}/$uri.html，命中则直接返回（0 PHP 开销）
# 注意：宝塔「伪静态」框已位于 location / 内，不能再嵌套 location，故用 try_files 直接放在此处
try_files /site/$host$uri.html
          /site/$host$uri/index.html
          /site/$host/index.html
          $uri
          $uri/
          @beeai_php;

# 命名 location（用于 try_files 回落到 PHP 时承接）
location @beeai_php {
    rewrite ^/(.*)$ /index.php?slug=$1&$args last;
}

# 首页兜底：未命中静态时直接交给 PHP 动态入口
rewrite ^/$ /index.php last;

# 文章详情页（PHP 兜底）：/wps/wps-2.html
rewrite ^/(.+)\.html$ /index.php?slug=$1 last;

# 搜索页：/search?q=关键词
rewrite ^/search/?$ /index.php?slug=search last;

# 首页分页：/page/2/
rewrite ^/page/(\d+)/?$ /index.php?slug=index/page/$1 last;

# 文章聚合页：/articles/
rewrite ^/articles/?$ /index.php?slug=articles last;

# 标签页：/tag/fareyingdui/
rewrite ^/tag/([a-zA-Z0-9\-_]+)/?$ /index.php?slug=tag/$1 last;
rewrite ^/tag/([a-zA-Z0-9\-_]+)/page/(\d+)/?$ /index.php?slug=tag/$1/page/$2 last;

# 栏目页：/tiyu/、/tiyu/page/2/
rewrite ^/([a-zA-Z0-9\-_]+)/page/(\d+)/?$ /index.php?slug=$1/page/$2 last;
rewrite ^/([a-zA-Z0-9\-_]+)/?$ /index.php?slug=$1 last;
