在网站运营中,清晰、语义化的URL结构不仅能提升用户体验,更是搜索引擎优化的基石。对于AnQiCMS用户而言,灵活地在模板中构建带有多个动态参数的URL,并确保这些参数得到恰当的转义,是一项非常实用的技能。本文将深入探讨在AnQiCMS模板中实现这一目标的方法。

AnQiCMS中的URL基础与伪静态

AnQiCMS作为一个对SEO友好的内容管理系统,其强大的伪静态功能是构建优雅URL的基础。系统允许我们根据业务需求自定义URL结构,例如文档详情页可以使用 /{module}/{id}.html/{module}/{filename}.html 这样的模式。这里的 {module} 代表内容模型(如 articleproduct),{id} 是内容的唯一ID,{filename} 则是自定义的URL别名。分类页、标签页等也有类似的结构。

这些伪静态规则在后台的“功能管理”下的“伪静态规则”中进行配置。虽然这些规则定义了URL的骨架,但当我们需要在URL中传递额外的动态数据,例如搜索关键词、筛选条件、或者进行多项组合时,就需要利用URL的查询参数(Query Parameters)来实现,并且需要特别注意参数的转义问题。

构建带有动态参数的URL

在AnQiCMS模板中,我们经常需要根据用户的选择或后端数据动态生成URL。这通常涉及到在基本URL路径后添加 ?key1=value1&key2=value2 这样的查询字符串。以下是一些常见的动态参数构建场景:

  1. 基于文档/分类/标签的固有链接: AnQiCMS的各种列表标签(如 archiveListcategoryListtagList)在循环输出内容时,其 item.Link 字段已经包含了根据伪静态规则生成的友好URL。例如:

    {% archiveList archives with type="list" limit="10" %}
        {% for item in archives %}
            <a href="{{ item.Link }}">{{ item.Title }}</a>
        {% endfor %}
    {% endarchiveList %}
    

    这里的 {{ item.Link }} 通常是经过系统处理的静态或伪静态路径,不包含查询参数,但它本身就是一个动态生成的URL。

  2. 添加搜索关键词或其他单一查询参数: 当我们需要在现有URL上添加搜索关键词 q 或者其他自定义参数时,可以通过字符串拼接的方式实现。例如,在一个分类列表页,我们想添加一个搜索框: “`twig {# 假设当前分类的链接是 category.Link,搜索框输入的值是 searchQuery #} {% set currentCategoryLink = category.Link %} {% set searchQuery = “AnQiCMS模板” %} {# 假设这是用户输入的搜索词 #}

    href=“{{ currentCategoryLink