PHP 7.4 本身不处理重写,伪静态依赖 Nginx/Apache 配置与 PHP 参数接收协同工作;需先确认服务器类型,启用对应模块(Apache 启用 mod_rewrite、AllowOverride All;Nginx 默认支持但须重载),再通过宝塔「网站→设置→伪静态」选择模板或粘贴规则,最后务必重载 Web 服务。

PHP 7.4 部署在宝塔面板后,URL 仍显示 index.php?m=home&c=index&a=init 这类动态参数,页面访问正常但 SEO 友好度低、链接不美观,说明伪静态规则尚未生效或配置错误;必须明确:PHP 7.4 本身不处理重写,所有规则依赖 Nginx/Apache 配置与 PHP 参数接收方式协同工作,缺一不可。
确认服务器类型与模块状态
登录宝塔面板 → 网站 → 设置 → 伪静态,此时界面右上角会显示当前 Web 服务类型(Nginx 或 Apache),这是后续所有操作的前提。【务必先确认】 若显示 Apache,需额外检查 mod_rewrite 是否启用:进入宝塔左侧「软件商店」→ 找到已安装的 Apache →「设置」→「配置修改」→ 搜索 LoadModule rewrite_module,确保该行未被注释;同时确认站点根目录的 .htaccess 文件存在且权限为 644。
若显示 Nginx,则无需启用模块——Nginx 默认加载 rewrite 模块,但必须重载配置才生效。
通用伪静态入口配置
在网站列表中找到目标站点 → 点击右侧「设置」→ 切换至「伪静态」选项卡。
立即学习“PHP免费学习笔记(深入)”;
下拉菜单中选择对应程序模板(如 WordPress、ThinkPHP、PbootCMS、Typecho),点击「保存」。
弹窗提示「是否重载 Web 服务?」时,必须点击「重载 Nginx」或「重载 Apache」——【仅保存不重载,规则永不生效】。
按程序类型配置规则
方法一:WordPress(推荐 try_files 方式)
粘贴以下规则(兼容分页、搜索、后台访问):
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
方法二:ThinkPHP 6.x(PATHINFO 模式)
第一步:进「网站目录」→「运行目录」下拉框选 /public(不是手输,不是留空)
第二步:在伪静态文本框中粘贴:
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
第三步:进 PHP 设置 →「禁用函数」列表中删除 scandir、putenv、ini_set —— 否则路由解析失败导致 404
方法三:PbootCMS(子目录部署需修正路径)
若网站部署在二级目录如 /news/,不能直接套用通用规则。原规则 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; } 会把 /news/about.html 错误重写为 /index.php?s=/news/about.html,应改为:
if (!-e $request_filename) {
rewrite ^/news/(.*)$ /news/index.php?s=$1 last;
}



















