迅睿框架 版主:迅睿框架研发组
使用自定义函数url,修改了后,原先缓存依然存在,需要删
类型:迅睿CMS 更新时间:2025-06-23 12:08:11 CodeIgniter

网站的内容,使用了自定义url的函数,标题到拼音的

现在添加了内容,因为测试,标题写了个11,可以访问,pro/11.html
后来修改了标题11,为glass,现在就变成了 pro/11.html 可以访问,pro/glass.html 也可以访问
就不知道这个11.html缓存实在哪里可以删除了?

回帖
  • 迅睿官方技术专家
    #1楼    迅睿官方技术专家
    2025-06-23 00:03:56
    Chrome 0
    要看你自定义函数内容是怎么写的,还有rewrite.php是怎么指引的,两个地方都要看
  • 爬树蜗牛
    #2楼    爬树蜗牛
    2025-06-23 09:17:03
    Chrome 0
    这是自定义部分:
    function title_to_slug($title)
     {
         // 转为小写
         $title = strtolower($title);
         // 替换非字母数字字符为 -
         $title = preg_replace('/[^a-z0-9]+/', '-', $title);
         // 去除首尾 -
         return trim($title, '-');
     }
     
     function myurl($data)
     {
         $py = title_to_slug($data['title']); // 把标题转换空格为-
         $url = $data['dirname'] . "/" . $py . ".html"; // url规则:news/pinyin.html
         dr_mkdirs(WRITEPATH . 'myid/'); // 创建id缓存存储目录
         file_put_contents(WRITEPATH . 'myid/' . md5(trim($url, '/')) . '.txt', $data['id']); // 将id号存储缓存文件
         return $url; //返回我自己的
     }
    这是伪静态部分:
    if (CMSURI) {
        $myfile = WRITEPATH . 'myid/' . md5(CMSURI) . '.txt';
        if (is_file($myfile)) {
            $id = file_get_contents($myfile);
            if ($id) {
                return [
                    CMSURI => 'index.php?c=show&id=' . $id, // 这里写内容的地址
                ];
            }
        }
    }
    请帮看看,具体该如何处理?
  • 爬树蜗牛
    #3楼    爬树蜗牛
    2025-06-23 09:22:53
    Chrome 0
    我看到 myid 下,有三个相同的缓存,里面的数值都是同一个数,可能是在这个里面,该如何调整一下,可以处理的?
  • 迅睿官方技术专家
    #4楼    迅睿官方技术专家
    2025-06-23 09:26:16
    Chrome 0
    你写的代码是将数据索引储存到myid目录,那么你手动清空这个目录就可以了
  • 爬树蜗牛
    #5楼    爬树蜗牛
    2025-06-23 09:33:11
    Chrome 0
    有没其他更好的解决问题的方案,现在是一个还行,如果有很多,就比较难处理的?
  • 迅睿官方技术专家
    #6楼    迅睿官方技术专家
    2025-06-23 10:46:17
    Chrome 0
    再多都不影响的,程序处理很方便,没有难处
  • 爬树蜗牛
    #7楼    爬树蜗牛
    2025-06-23 12:08:11
    Chrome 0
    是可以通过清空的方式来处理,但这个里面有个问题,就是原先已经生成的缓存,当删除后,假使搜索引擎已经收录,而我们再对标题做一个修改,产生了变化,那就原先的url,需要做301及时能查重找出id,不过目录是通过md5加密,也不知道原先的名称,所以看看有没更好的解决方案的?
    如何更好的设置自定义URL,请给个思路,我们再摸索