赞片CMS301重定向

liulian
liulian 正式会员超兽战士
发布于 2026-10-07 04:47 ·0 浏览 ·0 回复

照着做完,你能把赞片CMS的旧域名、旧链接、http 访问全部干净地跳到新地址,并且能自己验证跳转是不是真的 301。

第一步:先分清你要做的是哪一类跳转

赞片CMS 的 301 需求基本只有三类,做法完全不同,先对号入座再动手:

  1. 全站换域名:old.com 整个站搬到 new.com,所有页面都要跳。
  2. http 转 https 或 www 统一:域名没变,只是协议或前缀要统一。
  3. 单条旧链接跳新链接:某个栏目、详情页改了 URL,只跳那几条。

前两类在 Web 服务器(Nginx/Apache)里做,第三类可以放服务器里也可以放 CMS 伪静态里做。先想清楚属于哪类,否则容易和 CMS 自带的伪静态规则打架。

第二步:Nginx 环境下做全站 301(最常见)

这一步做完,访问旧域名的任何页面都会被永久跳到新域名对应页面。

如果你用宝塔面板:进入「网站」→ 找到旧域名对应的站点 → 点「设置」→ 左侧选「配置文件」,在 server { } 块里加一段:

server {
    listen 80;
    listen 443 ssl;
    server_name old.com www.old.com;
    return 301 https://www.new.com$request_uri;
}

关键点:$request_uri 必须带上,否则用户从 /vod/123.html 进来会被统一扔到首页,SEO 权重直接丢。

注意:return 301 要写在旧站点的 server 块里,新站点自己的 server 块不要写这条规则,否则会自己跳自己形成循环。

改完在宝塔里点「保存」,再点「重载配置」(或命令行 nginx -t && nginx -s reload,先测试语法再重载,语法错会导致整站 502)。

第三步:Apache 环境的写法

如果你用的是 Apache,改的是站点根目录下的 .htaccess(宝塔路径一般是 /www/wwwroot/你的域名/.htaccess),加在文件最前面:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old\.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.old\.com [NC]
RewriteRule ^(.*)$ https://www.new.com/$1 [R=301,L]

R=301 是永久跳转,L 表示匹配后停止。RewriteEngine On 只能写一次,如果文件里已经有了,不要重复写。

第四步:同步改赞片CMS后台里的站点地址

服务器跳转只解决"进得来",站内的绝对链接还得靠 CMS 自己改。

登录后台(一般是 /admin.php),进入「系统」→「基本设置」,把 站点网址 / 站点域名 改成 https://www.new.com。再到「系统」→「伪静态设置」(或 URL 规则),确认域名相关变量已经跟着变。

如果模板里写死了旧域名,或者数据库里存了大量旧域名(比如文章正文、播放地址),用 phpMyAdmin 或宝塔的「数据库」→「管理」→ SQL 执行:

UPDATE 表前缀_表名 SET 字段名 = REPLACE(字段名, 'old.com', 'new.com');

注意:执行前先导出备份,UPDATE 没有撤销键。表前缀在 CMS 的数据库配置文件里能看到,别猜。

第五步:只跳某几条旧链接

在伪静态规则里加单条 rewrite 即可:

rewrite ^/voddetail/123\.html$ https://www.new.com/vod/456.html permanent;

permanent 就是 301。这类规则要写在 CMS 自带伪静态规则之前,否则会被通用规则先匹配走,永远轮不到它。

第六步:验证是不是真 301

命令行执行:

curl -I https://old.com/vod/123.html

看两行:HTTP/1.1 301 Moved Permanently 和 Location: https://www.new.com/vod/123.html。如果状态码是 302,说明你漏了 permanent 或写成了 redirect。

注意:301 会被浏览器和 CDN 永久缓存。调试阶段建议先用 302 测试,全部确认无误后再改成 301,否则改错了要清浏览器缓存甚至等 CDN 刷新。

小结

  • 全站换域名用 Nginx 的 return 301 https://新域名$request_uri,或 Apache 的 RewriteRule ... [R=301,L]。
  • $request_uri / $1 不能省,否则所有旧链接都跳到首页。
  • CMS 后台的站点网址、数据库里的旧域名要一起替换,缺一不可。
  • 单条跳转的 rewrite 要放在通用伪静态规则前面。
  • 用 curl -I 验证状态码必须是 301,调试期先上 302 更安全。
版权声明:本文来自 GJ论坛《赞片CMS301重定向》
原文链接:https://www.gj0.com/thread-76.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~