赞片CMSURL不对
学完这篇,你能独立定位并修复赞片CMS中URL显示错误、跳转异常或404的问题,让前后台链接恢复正常。
第一步:核对后台站点URL配置
这一步要确认系统记录的“自己是谁”,如果这里填错,所有生成的链接都会带错域名或路径。登录赞片CMS后台(以v10为例),依次点击「系统」→「系统设置」→「基本设置」,找到「站点URL」一栏。正确格式是 https://你的域名,不要加末尾斜杠,也不要带 /index.php。如果你从http换成了https,或者换了新域名,必须在这里改。改完先别保存,继续下一步。
注意:如果后台进不去,可以临时修改
/application/common/conf/config.php里的site_url值,但改完要尽快回后台同步。
第二步:检查服务器伪静态规则
这一步要确保Web服务器能把美化后的URL正确转给PHP处理。如果你用的是宝塔面板(以7.9版为例),进入「网站」→ 找到你的站点→「设置」→「伪静态」,在下拉框里选择“赞片CMS”或手动粘贴规则。Nginx规则参考如下:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
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>
保存后重启Nginx或Apache。
注意:伪静态规则必须与下一步的URL模式匹配,否则会全部404。
第三步:调整系统URL模式
这一步决定赞片CMS生成哪种形式的链接。进入后台「系统」→「系统设置」→「URL设置」,你会看到「URL模式」选项。常见有三种:动态(index.php?s=...)、伪静态(/list/1.html)、PATHINFO(/index.php/list/1.html)。如果你用了第二步的伪静态规则,这里就选“伪静态”;如果服务器不支持rewrite,就选“动态”保底。选好后点击「保存」。
注意:切换模式后,前台所有旧链接会失效,搜索引擎已收录的地址需要做301,但那是后续优化的事,先让站内正常。
第四步:清除所有缓存
这一步很关键,因为赞片CMS会把URL配置缓存到文件或内存里,改完不清理等于没改。进入后台「系统」→「缓存管理」,依次点击「清除系统缓存」「清除模板缓存」「清除URL缓存」。如果后台有「更新缓存」按钮,也点一次。然后手动删除 /runtime/cache/ 和 /runtime/temp/ 目录下的所有文件(用FTP或宝塔文件管理器)。
第五步:处理数据库中的旧域名(迁移场景)
如果你是从老域名换到新域名,数据库里文章、栏目等表可能还存着旧域名的绝对地址。用phpMyAdmin(或宝塔的数据库管理)登录,选中赞片CMS的数据库,执行以下SQL(把 old.com 和 new.com 换成你的实际域名):
UPDATE v9_news SET url = REPLACE(url, 'old.com', 'new.com');
UPDATE v9_content SET content = REPLACE(content, 'old.com', 'new.com');
表前缀 v9_ 请根据你安装时的设置调整。
注意:执行前务必先导出数据库备份,一旦替换错文件或字段很难恢复。
第六步:前台实测与排查
打开浏览器无痕模式,访问首页、栏目页、文章页,右键“检查”看链接是否正常。如果首页正常但内页404,回到第二步检查伪静态规则是否针对子目录生效;如果链接里还带着 index.php,回到第三步确认URL模式是否选对;如果域名还是旧的,重复第一步并清缓存。全部正常后,在后台「系统」→「备份管理」做一次全站备份。
小结
- 先改后台「站点URL」,再配服务器伪静态,最后选URL模式,顺序不能乱。
- 伪静态规则和URL模式必须成对出现,否则全站404。
- 改任何配置后都要清缓存,包括后台缓存和
/runtime/目录。 - 迁移站点时,数据库里的旧域名要用SQL替换,操作前先备份。
- 用无痕模式测试,避免浏览器缓存干扰判断。
原文链接:https://www.gj0.com/thread-950.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。