船说 CMS 长尾词插件失效怎么修复
学完这篇,你能按顺序定位船说 CMS 长尾词插件失效的真正原因(是没开启、伪静态丢了、缓存没清还是数据表缺了),并动手把它修回正常出词。
第一步:先确认「失效」到底是哪种失效
长尾词插件失效通常有三种表现,现象不同,排查方向完全不同,先对号入座再动手:
- 后台能看到长尾词列表,但前台访问长尾词 URL 返回 404;
- 前台能打开页面,但页面里的长尾词内链不生成、不替换;
- 后台长尾词列表直接空白,或保存时提示数据库错误。
把具体现象记下来,再进入下一步,避免一顿乱改把问题扩大。
第二步:确认插件开关和授权状态
这一步要做的是排除「插件被禁用或授权掉了」这种最常见原因,做完你能确认插件是否处于启用态。
登录后台,入口一般是 你的域名/admin.php(部分版本是 /admin,以你实际登录地址为准)。进入后按顺序点:应用管理 → 插件管理 → 已安装插件,找到长尾词插件,确认「状态」列显示为「已启用」。
注意:如果显示「已禁用」但你点启用没反应,多半是授权到期或域名变更。船说 CMS 的插件授权通常绑定域名,换域名、加二级域名、把 http 改成 https 都会导致授权校验失败,此时插件会自动降级为不工作。这种情况需要重新绑定授权域名,改代码骗过校验是没用的。
第三步:清掉三层缓存
插件改了长尾词库或伪静态后,前台不刷新,九成是缓存没清。这一步要把三层缓存全部清掉,做完前台才会读到新数据。
- 后台:系统 → 系统工具 → 清除缓存,勾选「数据缓存」「模板缓存」「HTML 缓存」后提交;
- 服务器:进入网站根目录,删除
runtime/目录(或cache/、data/cache/,不同版本目录名不同,看到缓存类目录就删里面的文件,别删目录本身); - CDN 或浏览器:如果站点接了 CDN,在 CDN 控制台点「刷新预热 → 刷新全部」;浏览器用
Ctrl+F5强刷。
注意:删除
runtime/前先确认目录里有index.html之类的空文件,部分版本删空目录会导致后台报「目录不存在」,删完重新访问一次首页即可自动重建。
第四步:检查伪静态规则是否丢失
长尾词页面走的是伪静态地址,规则丢了就必然 404。这一步做完,404 问题基本消失。
打开插件安装包,里面通常带一个 rewrite.txt 或 伪静态.txt,里面的规则是最准的。以 Nginx 为例,进宝塔面板 → 网站 → 你的站点 → 设置 → 伪静态,把规则粘进去保存。规则大致长这样(以插件自带的为准,不要照抄):
rewrite ^/tags/(.*)$ /index.php?m=tag&a=index&id=$1 last;
rewrite ^/longtail/([0-9]+).html$ /index.php?m=longtail&a=show&id=$1 last;
Apache 环境则在站点根目录的 .htaccess 里加对应规则。
注意:规则顺序要放在「伪静态最后一条兜底规则」之前。如果站点里还有采集、跳转类插件,它们的规则可能把长尾词 URL 提前拦截了,把长尾词规则往前提几行试试。
第五步:检查数据表是否完整
如果后台列表空白、保存报错,多半是插件安装时建表失败。这一步做完你能确认表到底在不在。
进宝塔 → 数据库 → 你的库 → 管理(phpMyAdmin),登录后执行:
SHOW TABLES LIKE '%longtail%';
SHOW TABLES LIKE '%keyword%';
看结果里有没有插件对应的表。没有的话,回到后台把插件「卸载(保留数据)」再「安装」一次,让它重新建表。
注意:卸载前务必先导出一次数据库备份。有些版本的「卸载」会连数据一起删,长尾词库辛苦攒的词就没了。
第六步:查目录权限和 PHP 错误日志
前五步都正常但仍不工作时,看日志最快。这一步做完你能看到真实的报错行号。
目录权限:runtime/、cache/、uploads/ 三个目录需要可写。宝塔 → 文件 → 选中目录 → 权限,设为 755,所有者设为 www。命令行等价操作:
chown -R www:www /www/wwwroot/你的站点/runtime
chmod -R 755 /www/wwwroot/你的站点/runtime
日志位置:宝塔 → 网站 → 站点 → 日志,或直接看 /www/wwwlogs/你的域名.error.log;PHP 错误日志在 /www/server/php/你的版本/var/log/php-fpm.log。搜 longtail 关键字,报错信息会直接指出是哪个文件的哪一行。
注意:如果报错是
Call to undefined function且函数名是each()、create_function()之类,说明你把 PHP 升到了 8.x,而插件是按 PHP 5.6/7.x 写的。最省事的做法是把站点 PHP 版本切回 7.4,别去改插件源码。
小结
- 先分清失效类型:404、内链不生成、后台空白,三种走三条路。
- 优先级顺序:插件启用与授权 → 清三层缓存 → 伪静态规则 → 数据表 → 权限与日志。
- 伪静态一定以插件包自带的
rewrite.txt为准,不要凭记忆写。 - 换域名、加 https 会导致授权失效,这是最容易被忽略的一条。
- PHP 版本升级到 8.x 是插件集体失效的高频原因,切回 7.4 通常立刻恢复。
原文链接:https://www.gj0.com/thread-620.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。