白马号博客

迅睿CMS内容中如何自定义URL?自定义URL的写法详解

作者:白马号 时间:2024-10-29 14:26:10 阅读量:0

本文将介绍如何在迅睿CMS中定义个性化URL,通过自定义字段自由填写内容的URL,实现更高的灵活度。以下教程仅供学习研究。


教程概览

通过在CMS中创建自定义字段、配置URL规则、修改PHP文件和伪静态解析,实现个性化的内容URL地址设置。


步骤一:在文章模块中创建自定义URL字段

  1. 创建自定义字段

    • 打开文章模块,在主表中添加一个字段(字段名称可随意,但需在后续步骤中保持一致)。

    • 如下图所示:

      image.png

  2. 更新缓存

    • 创建字段后,更新缓存使其生效,但无需立即发布数据。


步骤二:配置自定义URL规则

  1. 进入自定义URL规则

    • 在URL规则设置中,选择“内容页规则”进行配置。

    • 配置规则时,仅需在内容页设置,无需生成规则文件。

    • 保存规则后,继续下一步操作。

      image.png


步骤三:在 config/custom.php 文件中添加自定义URL生成函数

  1. 打开 config/custom.php 文件,写入以下代码:

function zdyurl($data) {
    $url = $data['zidingyiurl'] ? trim($data['zidingyiurl']) : 'index.php?c=show&id='.$data['id'];
    dr_mkdirs(WRITEPATH.'myid/'); // 创建ID缓存目录
    file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将ID存入缓存
    return $url;
}

2024-10-29_145538

该函数的作用是将自定义字段中的URL(zidingyiurl)作为内容页地址,若未设置则使用默认URL,并将内容ID存储为缓存文件。

步骤四:在栏目SEO中应用自定义URL规则

进入栏目SEO设置


2024-10-29_144906

在栏目SEO中选择刚刚创建的规则,更新缓存使设置生效。


步骤五:测试效果

  1. 创建测试文章

  2. 2024-10-29_145123

    进入新闻管理,在指定栏目下发布一篇文章,在自定义URL字段中填写一个简洁的地址(使用字母或数字,避免特殊字符)。

  3. 保存文章

  4. 保存后,文章地址将更新为自定义的URL,但目前还无法访问。


步骤六:配置伪静态解析规则

  1. 手动添加伪静态解析代码

  2. 打开 config/rewrite.php 文件,添加以下代码:

    // 判断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, // 指向内容页地址
                ];
            }
        }
    }

使用自定义函数作为URL规则

此代码实现了伪静态规则解析,使得自定义URL地址可以被访问。

总结

通过以上步骤,您已成功设置自定义URL的基本流程。这是一个简化的案例,适用于基础内容管理场景。实际项目中可能需要更多定制,有需求的朋友可以与我联系。