ZBlogCMS Apache 伪静态设置方法是什么

chinaz
chinaz 正式会员超兽战士
发布于 2026-10-07 08:20 ·0 浏览 ·0 回复

照这篇做完,你能让 ZBlog 后台开启伪静态后不再 404,把 ?id=123 这类动态地址换成 /post/123.html 这样的静态样式链接。

ZBlog 的伪静态分两半:一半在服务器(Apache 要把请求转发给 index.php),一半在 ZBlog 后台(选伪静态模式)。只改一边,结果就是满屏 404。下面按顺序做。

第一步:确认 Apache 开了 mod_rewrite 模块

这一步要拿到的结果是:服务器具备重写能力。没有它,后面写什么规则都没用。

如果你是宝塔面板:左侧「软件商店」→ 找到已安装的 Apache → 点「设置」→「配置修改」,在配置文件里搜索 mod_rewrite.so,确认这一行前面没有 #:

LoadModule rewrite_module modules/mod_rewrite.so

如果是 Linux 命令行装的 Apache,执行:

apachectl -M | grep rewrite

输出里有 rewrite_module (shared) 就说明已加载。没有的话,Debian/Ubuntu 用 a2enmod rewrite,CentOS 在 /etc/httpd/conf/httpd.conf 里取消注释后重启。

注意:改完配置文件必须重启 Apache 才生效。宝塔点「重载配置」或「重启」,命令行用 systemctl restart httpd(CentOS)或 systemctl restart apache2(Debian/Ubuntu)。

第二步:让站点目录允许读取 .htaccess

这一步要拿到的结果是:Apache 愿意读你等下要放的 .htaccess 文件。默认配置常常是 AllowOverride None,那就是把你的规则当空气。

打开 Apache 主配置文件,找到站点目录对应的 <Directory> 段,把 AllowOverride 改成 All:

<Directory "/www/wwwroot/你的域名">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

宝塔面板更省事:网站 → 找到你的站点 → 「设置」→「配置文件」,同样找 <Directory> 段改 AllowOverride All,保存后重载。

注意:不要图省事把 AllowOverride All 写在根目录全局,只给你这个站点目录开,安全上更稳。

第三步:在网站根目录放 .htaccess

这一步要拿到的结果是:动态请求被转发到 index.php。文件位置必须是 ZBlog 的根目录,和 index.php、zb_users 同级。

用 FTP 或面板文件管理器新建文件,文件名就叫 .htaccess(注意前面有个点,Windows 记事本另存时文件名要写成 ".htaccess" 带引号),内容如下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

如果 ZBlog 装在子目录(比如 域名/blog/),把 RewriteBase / 改成 RewriteBase /blog/,最后一行改成 RewriteRule . /blog/index.php [L]。

注意:如果你用的是宝塔,也可以在「网站 → 设置 → 伪静态」里选 zblog 模板,它会自动写入等价规则,不用手写。但选了模板后别再去手改 .htaccess,两边规则冲突会出怪问题。

注意:RewriteCond %{REQUEST_FILENAME} !-f 两行的作用是「文件或目录真实存在就直接返回」,缺了这两行,/zb_users/ 下的 CSS、图片全会被转发给 PHP,页面会变成白板。

第四步:ZBlog 后台开启伪静态

这一步要拿到的结果是:ZBlog 内部按静态样式生成链接。

用管理员登录后台(默认 /zb_system/login.php),进入「网站设置」→「静态化管理」(部分 1.7 版本显示为「伪静态设置」),把模式切换为「伪静态」,保存。

如果后台没有这一项,去「应用中心」搜索官方「静态化」插件,安装启用后同样在这个位置配置。

注意:切换模式后一定要点「清空缓存并重新编译模板」(后台右上角或「网站设置 → 清空缓存」),否则前台还是旧链接。改完随手打开一篇文章,看地址栏是不是变成了静态样式,能正常打开才算成功。

第五步:验证与排查

访问一篇文章或分类页,地址不带 ? 参数且能正常显示,就说明配置完成。

如果仍然 404,按顺序排查:AllowOverride 是否真的改到了本站点目录;mod_rewrite 是否已加载;.htaccess 是否在根目录且文件名没变成 .htaccess.txt;RewriteBase 是否和实际子目录一致。宝塔用户注意看「伪静态」页签是否处于「未启用」状态。

小结

  • Apache 端三件事:开 mod_rewrite、站点目录 AllowOverride All、根目录放 .htaccess。
  • .htaccess 里两条 RewriteCond 判断文件/目录是否存在,不能省。
  • ZBlog 后台「网站设置 → 静态化管理」切到伪静态,改完清缓存。
  • 子目录安装要同步改 RewriteBase 和 RewriteRule 的目标路径。
  • 出问题先查服务器三件事,再查后台设置,顺序反了会白折腾半天。
版权声明:本文来自 GJ论坛《ZBlogCMS Apache 伪静态设置方法是什么》
原文链接:https://www.gj0.com/thread-179.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~