赞片CMSURL结构
学完这篇,你能自己看懂赞片CMS的 URL 是怎么拼出来的,并且能在后台和服务器上把它改成你想要的样子——包括列表页、详情页、播放页的地址格式,以及改完之后怎么保证老链接不 404。
赞片CMS(常见的是基于 ThinkPHP 的 3.x 系列)默认的地址看着挺规整,但它其实是「后台设置 + 服务器伪静态规则 + 模板生成地址」三处配合的结果。哪一处不对,URL 就出不来。下面按顺序走一遍。
第一步:先确认你的站点现在用的是哪种 URL 模式
这一步要弄清「地址长什么样由谁决定」,做完你才知道后面该改哪里。
赞片CMS 一般支持三种模式:
- 普通模式:
http://你的域名/index.php?m=vod&a=detail&id=123 - PATHINFO 模式:
http://你的域名/index.php/vod/detail/id/123.html - 伪静态(REWRITE)模式:
http://你的域名/vod/123.html之类
判断方法很简单:随便打开一个影片详情页,看地址栏里有没有 index.php、有没有 ?m=。有 ?m= 就是普通模式,只有 index.php 是 PATHINFO,都没有才是伪静态。
注意:后台菜单名各版本略有差异。登录后台后(默认入口通常是
/admin.php),找「系统」→「基本设置」或「系统设置」下的 URL 设置 / 伪静态设置,里面一般有「URL 模式」这一项。如果你的后台找不到这一项,说明你的版本把这部分写死在配置文件里了,见第二步。
第二步:确认 URL 模式是后台控制还是配置文件控制
这一步要确定「改哪个文件」,避免白改。
先在后台找上面说的 URL 设置项。能找到,就在那里切换,不用碰代码。
找不到的话,去看配置文件。赞片CMS 的 ThinkPHP 配置一般在这两个位置:
Application/Common/Conf/config.php:全局配置,里面会有URL_MODEL(0=普通、1=PATHINFO、2=REWRITE)、URL_HTML_SUFFIX(后缀,通常是html)这类项。Application/Home/Conf/config.php:前台模块配置,路由规则URL_ROUTE_RULES常写在这里。
用编辑器打开,搜索 URL_MODEL,就能看到当前值。改完保存。
注意:改配置文件前先备份一份原文件。ThinkPHP 的配置数组少一个逗号整站就白屏,出问题时把备份覆盖回去是最快的恢复方式。
第三步:把服务器伪静态规则配对
这一步决定伪静态地址能不能真的被服务器正确解析,做完你访问 /vod/123.html 才不是 404。
Nginx:在站点配置的 server { } 里加 rewrite。ThinkPHP 的通用写法是:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
}
改完执行 nginx -t 测试语法,再 nginx -s reload。
Apache:确认根目录有 .htaccess,且站点配置里 AllowOverride All 已打开。规则同样是「文件不存在就转给 index.php」。
宝塔面板:站点 → 设置 → 伪静态,选择 thinkphp 模板即可,不用手写。
注意:伪静态没配的时候,把后台切成伪静态模式会导致全站打不开。顺序永远是「先配服务器规则,再切后台模式」。另外 PHP 的 PATHINFO 被禁用时(部分虚拟主机默认禁),PATHINFO 模式也会失效,需要在 php.ini 里放开,或干脆用伪静态。
第四步:调整具体页面的地址格式
这一步决定列表页、详情页、播放页各自长什么样。
在后台的 URL 规则设置里,通常能看到几组对应关系,常见形态是:
- 分类列表:
/list/{id}.html或/vod/type/{id}.html - 影片详情:
/show/{id}.html或/vod/{id}.html - 影片播放:
/play/{id}-{sid}-{nid}.html(id 影片、sid 播放源、nid 集数)
把里面的固定词(vod、show、list)换成你想要的英文词即可,比如换成 movie、watch。占位符名别乱改,那是模板取值用的。
如果后台没有这项,就去 Application/Home/Conf/config.php 里的 URL_ROUTE_RULES 数组改,格式类似:
'URL_ROUTE_RULES' => array(
'vod/:id\d' => 'Home/Vod/detail',
'play/:id\d' => 'Home/Vod/play',
),
注意:模板里生成地址必须用系统自带的 URL 生成函数(标签手册里会写,通常是
U()或系统封装的zpf_url()之类),不要在模板里手写/vod/123.html这种死地址。一旦规则改了,手写的地方全废,用函数的地方自动跟着变。
第五步:改完 URL 必须做的三件事
这一步保证改动真正生效,并且不丢已有流量。
- 清缓存:后台 →「系统」→「清除缓存」,或直接删掉
Runtime/目录下的内容。模板缓存不清,前台还是旧地址。 - 做 301:如果站点已有收录,把老地址 301 跳到新地址。在 Nginx 里用
rewrite ^/vod/(\d+)\.html$ /show/$1.html permanent;这类规则处理。 - 更新站点地图:后台重新生成 sitemap,再去搜索引擎站长平台重新提交。
小结
- 赞片CMS 的 URL 由三处共同决定:后台 URL 设置、服务器伪静态规则、模板里的 URL 生成函数,缺一处都不生效。
- 先看地址栏判断当前模式,再去后台或
Application/Common/Conf/config.php找URL_MODEL。 - 顺序不能反:先配 Nginx/Apache 伪静态,再切后台模式,否则整站打不开。
- 具体格式在 URL 规则里改固定英文词,占位符不要动。
- 模板里必须用 URL 生成函数,不要手写死地址。
- 改完三件事:清缓存、老地址做 301、重新提交 sitemap。
原文链接:https://www.gj0.com/thread-979.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。