如何配置孜然单授权的伪静态?

在部署孜然单授权 V2.0 时,伪静态规则往往是系统能否直接通过友好 URL 访问的关键。若 rewrite 配置不当,index.php 可能被绕过,导致授权页面返回 404,甚至出现无限跳转的异常。

Nginx 环境下的伪静态配置

针对 Nginx,推荐把 rewrite 放在站点根目录的 server 块内部。核心思路是:当请求的路径既不是物理文件也不是目录时,统一转向 index.php 并保留原始 URI 供框架解析。

# Nginx 伪静态示例
location / {
    try_files $uri $uri/ /index.php?s=/$uri$is_args$args;
}
# 若使用旧版 rewrite 语法,可改写为:
# if (!-e $request_filename) {
#     rewrite ^(.*)$ /index.php?s=/$1 last;
# }

Apache(.htaccess)中的 rewrite 设置

在 Apache 环境下,.htaccess 必须启用 mod_rewrite。以下规则兼容大多数共享主机,确保请求先经过 RewriteEngine,再交给 PHP 入口。

# Apache 伪静态示例
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    # 排除真实文件和目录
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    # 其余全部指向 index.php
    RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>

常见错误及诊断技巧

  • 规则未生效:检查 AllowOverride All 是否在 Apache 配置中开启。
  • 循环重写:try_files 中遗漏 $uri/ 会导致目录请求无限回退。
  • 参数丢失:在 Nginx 使用 $is_args$args 能完整保留 GET 参数,避免授权验证失效。

记得在修改完规则后,先用 curl -I 检查响应头,确认 200 OK 再打开浏览器。

只要伪静态规则与系统入口保持“一对一”映射,孜然单授权的页面切换、授权校验都能在毫秒级完成,真正做到“点开即用”。

文章版权归作者所有,未经允许请勿转载。

参与讨论

0 条评论
通知图标

正在阅读:如何配置孜然单授权的伪静态?