赞片CMSURL优化
学完这篇,你能把赞片CMS的网址从一串带问号的动态参数,改成结构清晰的静态化URL,并且打通伪静态规则、多集播放页和301跳转这几处最容易出问题的环节。
第一步:先摸清现在的URL长什么样
这一步要做的就是"记录现状",拿到一份改造前的URL清单,后面做对比和跳转全靠它。
打开你的站点,随便点进一个分类页、一个影片详情页、一个播放页,把地址栏内容复制出来。典型的默认形态是这样:
- 分类页:
https://你的域名/index.php/vod/show/id/5.html - 详情页:
https://你的域名/index.php/vod/detail/id/1234.html - 播放页:
https://你的域名/index.php/vod/play/id/1234/sid/1/nid/3.html
三个页面各记一条,存到记事本里。
注意:播放页的
sid(播放源)和nid(集数)是两个独立参数,同一条影片会有几十上百个URL变体,这是后面重复收录的根源,先记住这点。
第二步:在后台开启伪静态并设置URL规则
这一步做完,后台生成的链接就会变成你要的形状,但此时访问会404,因为服务器还不认。
登录赞片CMS后台,常见路径是「系统」→「网站参数配置」→「URL规则」标签页(部分版本是左侧独立菜单「URL规则管理」)。以苹果CMS v10内核的版本为例,这里有四组输入框:分类页、详情页、播放页、专题页。
推荐填写:
- 分类页:
/list/{id}.html - 详情页:
/show/{id}.html - 播放页:
/play/{id}-{sid}-{nid}.html
其中 {id} 是数字ID,{en} 是栏目拼音,{page} 是分页。填完点「保存」,然后回到页面编辑区,页面顶部会显示"预览地址",把它复制下来——这个预览地址就是下一步Nginx要转发的真实目标地址。
注意:改URL规则前先备份数据库,或者至少把旧规则截图。规则一改,搜索引擎已收录的旧链接会全部失效,如果没做301,权重会直接掉。
第三步:配置服务器的重写规则
这一步是把"好看的URL"翻译成"程序能懂的地址",做完后前台所有链接都能正常打开。
宝塔面板环境:进入「网站」→ 找到你的站点 → 点「设置」→ 左侧选「伪静态」→ 下拉框选 thinkphp(赞片CMS基于ThinkPHP),然后在下方的编辑框里补上你的专属规则,最后点「保存」。
Nginx手动配置:打开 /www/server/panel/vhost/nginx/你的域名.conf,在 server { } 里加:
location / {
if (!-e $request_filename) {
rewrite ^/list/([0-9]+)\.html$ /index.php/vod/show/id/$1 last;
rewrite ^/show/([0-9]+)\.html$ /index.php/vod/detail/id/$1 last;
rewrite ^/play/([0-9]+)-([0-9]+)-([0-9]+)\.html$ /index.php/vod/play/id/$1/sid/$2/nid/$3 last;
rewrite ^/(.*)$ /index.php/$1 last;
}
}
保存后执行 nginx -t 检查语法,出现 syntax is ok 再执行 nginx -s reload。
注意:rewrite 的目标地址必须和你第二步看到的"预览地址"完全一致。不同版本的赞片CMS路由可能是
/vod/show/也可能是/vod/type/,照抄别人的规则十有八九会404。
Apache环境:在网站根目录新建 .htaccess,写入 RewriteEngine On 加对应的 RewriteRule,并在后台「系统」→「网站参数配置」里把「URL模式」设为 REWRITE。
第四步:处理播放页的重复内容
这一步解决同一条影片被收录成几十个URL的问题,做完后收录量会明显收敛、权重更集中。
在详情页模板里,找到播放列表循环输出链接的地方。默认是每一集都输出一个独立链接,搜索引擎会把 /play/1234-1-1.html 到 /play/1234-1-50.html 全部当成不同页面。
改法:只让第一集输出真实链接,其余集数改用 data- 属性交给JS处理,或者统一指向 /play/1234-1-1.html。同时在详情页头部加入规范标签:
<link rel="canonical" href="https://你的域名/show/{$vod_id}.html" />
注意:canonical 必须写绝对地址,带
https://和域名,写相对路径搜索引擎不认。
第五步:做301跳转、404和站点地图
这一步收尾,把老链接的权重接过来,同时告诉搜索引擎哪里是新地图。
301跳转:在Nginx配置里加一条把带 index.php 的旧地址永久跳转到新地址:
rewrite ^/index\.php/vod/detail/id/([0-9]+)\.html$ /show/$1.html permanent;
permanent 就是301,不要写成 redirect(那是302,权重传不过去)。
404页面:后台「系统」→「网站参数配置」→「SEO设置」里有"404页面模板",填一个自定义模板文件名,并确认服务器配置了 error_page 404 /404.html;。
站点地图:后台一般自带「生成sitemap」功能,位置在「系统」→「其他管理」或「SEO工具」里,生成后在 robots.txt 里加一行 Sitemap: https://你的域名/sitemap.xml。
第六步:验证
用命令行逐个确认,不要靠眼睛看:
curl -I https://你的域名/show/1234.html
返回 HTTP/1.1 200 OK 才算成功;返回 301 说明跳转没配好;返回 404 说明rewrite规则没生效。再用百度搜索资源平台的「抓取诊断」提交3个新URL,看返回码是否正常。
小结
- 改造顺序不能乱:先记录旧URL → 再改后台规则 → 再配服务器重写 → 最后做跳转
- rewrite 的目标地址必须以后台显示的"预览地址"为准,不要照抄网上规则
- 播放页的多集参数
sid/nid是重复收录的重灾区,用 canonical 或统一指向解决 - 旧地址迁移一律用
permanent(301),不要用302 - 改完必须用
curl -I验证返回码,别只看浏览器能不能打开
原文链接:https://www.gj0.com/thread-951.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。