在部署孜然单授权 V2.0 时,伪静态规则往往是系统能否直接通过友好 URL 访问的关键。若 rewrite 配置不当,index.php 可能被绕过,导致授权页面返回 404,甚至出现无限跳转的异常。
针对 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 必须启用 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/ 会导致目录请求无限回退。$is_args$args 能完整保留 GET 参数,避免授权验证失效。记得在修改完规则后,先用
curl -I检查响应头,确认200 OK再打开浏览器。
只要伪静态规则与系统入口保持“一对一”映射,孜然单授权的页面切换、授权校验都能在毫秒级完成,真正做到“点开即用”。
文章版权归作者所有,未经允许请勿转载。
参与讨论
暂无评论,快来发表你的观点吧!