苹果CMS如何配置伪静态?
学完这篇,你能把苹果CMS(V10 版本)的 index.php?s=vod/type/id/1.html 这类动态地址,改成 /vod/type/id/1.html 这样的静态地址,并且知道 Nginx、Apache、宝塔面板三种环境下分别该改哪儿。
第一步:确认三个前提,不满足后面全白做
这一步是检查环境和备份,做完你才知道自己有没有条件开伪静态。
- 确认版本是苹果CMS V10(V8 及更早版本规则完全不同,本文不适用)。
- 确认你手里的还是官网原版。二次开发改过路由的,改完可能打不开页面。
- 备份两样东西:数据库(后台「系统」→「数据库管理」→「备份」),以及网站根目录下的
.htaccess(如果有)。
注意:伪静态只影响 URL 长相,不改内容。但如果规则写错,会出现整站 404,所以务必先备份数据库。
第二步:后台把 URL 规则切成伪静态
这一步在后台把「动态」模式改成「伪静态」,做完前台链接才会生成 .html 结尾的地址。
登录后台(默认 /admin.php),左侧菜单依次点:系统 → URL规则。里面会看到「视频」「文章」「专题」等规则条目,每一条都有模式选项:
- 把「视频」规则的模式从 动态 改为 伪静态;
- 规则串保持默认即可,例如视频列表是
vod/type/id/{id}.html,视频详情是vod/detail/id/{id}.html; - 同样操作「文章」「专题」;
- 点页面下方的「保存」。
改完顺手做一件事:同一个后台,点 系统 → 缓存管理 → 清除全部缓存。不清缓存,前台很可能还是旧链接。
注意:后台「系统 → 网站参数配置 → 基本设置」里的「网站域名」必须填真实可访问的域名(带 http/https,结尾不要加斜杠)。填错的话,伪静态链接会指向错误地址。
第三步:写服务器重写规则
这一步让服务器把静态地址翻译回 index.php?s=...,这是伪静态真正生效的关键。
Nginx 环境
打开站点配置文件(宝塔面板路径一般是 /www/server/panel/vhost/nginx/你的域名.conf),在 server{} 里加入:
location / {
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
保存后在宝塔面板点「重载配置」,或命令行执行 nginx -t && nginx -s reload。
Apache 环境
在网站根目录建 .htaccess(已存在就打开),写入:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>
注意:Apache 要开启
mod_rewrite模块,并且站点目录的AllowOverride必须是All。写成None的话.htaccess会被直接忽略,页面照样 404。
宝塔面板快捷做法
面板 → 网站 → 找到你的站点 → 点「设置」→ 左侧「伪静态」→ 下拉框里如果没有「苹果CMS」,选「ThinkPHP」,或者直接把上面的 Nginx 规则粘进文本框 → 保存。
第四步:验证是否真的生效
这一步确认改对了,而不是只看到前台链接变好看。
- 浏览器打开
你的域名/vod/type/id/1.html,能正常显示列表页,说明成功。 - 随便点进一个视频详情页,地址栏应该是
vod/detail/id/xxx.html形式,页面内容正常。 - 如果返回 404,先回后台清一次缓存,再刷新服务器配置;仍旧 404 就把重写规则重新粘贴一遍,多半是复制时漏了字符。
- 后台 → 系统 → URL规则,点一下「更新缓存」类的按钮,让全站链接重新生成。
第五步:三个最容易踩的坑
- 装在子目录里:如果网站不在根目录,
RewriteBase /要改成RewriteBase /子目录名/,Nginx 规则也要相应加前缀。 - 开了 CDN:CDN 会缓存旧的动态地址,改完记得在 CDN 后台刷新目录缓存。
- 改了规则没清缓存:苹果CMS 有文件缓存,改完 URL 规则必须清缓存,否则前台还是老样子。
小结
- 伪静态分两半:后台开规则 + 服务器写重写,缺一半都不生效。
- 后台路径是「系统 → URL规则」,把视频、文章、专题的模式从动态改为伪静态。
- Nginx 用
rewrite ^(.*)$ /index.php?s=$1 last;,Apache 用.htaccess加RewriteRule。 - 宝塔用户可以直接在「网站 → 设置 → 伪静态」粘贴规则。
- 改前备份、改后清缓存,这两步最容易忘。
原文链接:https://www.gj0.com/thread-54.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。