业务经理

微信扫描以上二维码

028-61286886

技术咨询

使用title自定义函数作为URL规则,出现404

迅睿框架 更新 2024-12-25 14:10:42 木木木木

我的title已经限定了字母和数字的,我想使用title自定义函数作为URL规则,


第一步、我在config/custom.php写了一个函数titleurl

function titleurl($data) {
    $title = str_replace(" ", "-", $data['title']);
    return "/news/".$title.".html"; // 返回我自己的url规则:
}

第二步、在url规则里面填写新标签:

{modname}/{titleurl($data)}.html

第三步、在config/rewrite.php,加入代码

// 判断url是否是来自自定义函数
if (CMSURI) {
    $myfile = WRITEPATH.'myid/'.md5(urldecode(CMSURI)).'.txt';
    if (is_file($myfile)) {
        $id = file_get_contents($myfile);
        if ($id) {
            return [
                CMSURI => 'index.php?c=show&id='.$id, // 这里写内容的地址
            ];
        }
    }
}

第四步、然后更新内容url地址,使url地址生效

第五步、编写伪静态解析规则,因为这是你自己写的函数,所以无法用系统生成的代码了

 "([\w]+)\/([\w]+)\.html" => "index.php?s=$1&c=show&title=$2",


为什么我访问https://www.xxxx.cn/news/aaddb17339.html是404

访问https://www.xxxx.cn/news/1.html可以。

是伪静态解析规则写错了吗还是其他原因

方案

  • 外聘专员-GOLANG工作室 #1 · 2024-12-13 16:37:49
    满意答案
    第一步函数写的功能不全参考文档:《使用自定义函数作为URL规则》
    function titleurl($data) {
        $title = str_replace(" ", "-", $data['title']);
        $url = "/news/".$title.".html"; // 返回我自己的url规则:
            dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
        file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
        return $url;
    }
  • 木木木木 #2 · 2024-12-14 16:33:12
    外聘专员-GOLANG工作室 改成这个也是404,还有什么原因么?伪静态解析规则有没有问题?
    function titleurl($data) {
        $title = str_replace(" ", "-", $data['title']);
        $url = "/news/".$title.".html"; // 返回我自己的url规则:
            dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
        file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
        return $url;
    }
  • 木木木木 #3 · 2024-12-14 16:53:03
    我伪静态解析规则用下面这个可以用title当url,但是这个时候3个URL都能访问内容页面,想不用ID,只用titlehttps://www.xxxx.cn/news/show/1.htmlhttps://www.xxxx.cn/index.php?s=news&c=show&id=1https://www.xxxx.cn/news/aaddb17339.html
     "news\/([\w]+).html"   => "index.php?s=news&c=show&field=title&value=$1",



  • 木木木木 #4 · 2024-12-25 14:10:42
    @外聘专员-GOLANG工作室:重新改了函数也不行。

迅睿系统漏洞

GeoSeo工具箱
GeoSeo工具箱(2026-10-30)
新增城市落地页FAQ自定义 新增 Site Scan 分析报告并支...
外贸多语言建站
外贸多语言建站(2026-10-30)
修正对百度编辑器提取支持
AI文章生成器
AI文章生成器(2026-10-29)
任务插图设置数量
Bing站长数据
Bing站长数据(2026-10-29)
根据BING接口调整菜单 各个页面数据支持点击查看详情
按字段付费
按字段付费(2026-10-29)
按字段付费用于模块的字段设置一定的价格,当用户购买了此内容的字段时才...
泛解析站群系统
泛解析站群系统(2026-10-29)
AI队列增加清空按钮 表单提示语收敛 目录模式不接管主域名模板
账号注销
账号注销(2026-10-29)
用于用户中心的注销账号申请,后台审核通过后注销此账号。后台统一管理注...
邮件群发
邮件群发(2026-10-28)
修改模板的命名
自定义收款/捐款
自定义收款/捐款(2026-10-28)
自定义收款或捐款插件可以让用户快速创建付款或者捐款功能
CMS内容批量修改
CMS内容批量修改(2026-10-28)
后台批量修改文章内容的指定字段在插件后台可以任意指定字段