网站的路由系统是网站当中非常重要的部分,也就是URL的样式。随着SEO发展的越来越成熟,站长对于URL的要求也是越来越多。为满足不同规模网站站长的需求,我们设计了三段式URL设计
我们将网站分为前中后三段
三段式URL设计
前:URL前部分,比如说在URL中栏目slug等。
中:多数对应于id字段。
后:后缀。
路径方案
这里对应的就是URL前段。
路径方案包括:模型路径、单级slug、随机字符、自定义路径
模型路径:以模型名字为路标识
单级slug:以内容的栏目slug为标识
随机字符:随机字符串长度范围(示例:6-8 生成6到8位字符)。注意这里设置的是长度的随机范围,不是设置字符长度。设置此功能可以实现整站泛栏目功能。
自定义路径:选择这里后将自定义设置栏目列表页路径段标识和文章路径段标识
标识类型
这里多数对应于id
比如文章页对应的就是文章id,栏目列表页就是栏目id,可以选择的配置为数字id和哈希值
数字ID:传统设置方法,以内容的id为逻辑进行显示
哈希值:DjacoreCMS加密的哈希值,可以有效的防止采集盲爬。
URL后缀
我们选择的URL后缀包括.html,.htm,.shtml和无后缀。
在当令的SEO技术要求方面来讲已经没什么区别了,只是看站长的喜好。DjacoreCMS采用目前是的顶配响应为高频保护+静态页面+Djacore智能三级缓存。作为普通中大型项目高频保护+静态页面已经完全快速响应了。
在远古时代,.html这些后缀是静态页面的标识,后来就发展成为伪静态,现在我们就是缓存+静态的更快速的方案。
所以后缀为什么其实是无所谓的,全看站长喜好。
| 中文名 (Verbose Name) | 字段名 (Field Name) | 字段数据类型 (Field Type) | 默认值 (Default Value) | 字段说明 (Help Text/Remarks) |
|---|---|---|---|---|
| 路径方案 | url_front | CharField | 'model' | max_length=20
|
| 标识类型 | url_mid | CharField | 'id' | max_length=10, 可为空 (blank=True)
|
| 随机长度 | random_length | CharField | '6-8' | max_length=7, 可为空 (blank=True) 指定随机字符串的长度范围(当路径方案选择"random"时使用)。 格式:最小-最大(示例:6-8 表示生成6到8位字符)。 包含正则验证确保格式正确(^\d+-\d+$),以及最小长度验证 (MinLengthValidator(3))。 |
| 自定义路径段 | custom_slug | CharField | - | max_length=50, 可为空 (blank=True) 当选择自定义路径方案时使用的自定义路径段。 仅允许小写字母、数字和连字符(通过正则验证器确保:^[a-z0-9\-]+$)。 |
| 文章路径段 | custom_article | CharField | - | max_length=50, 可为空 (blank=True) 用于文章页面的自定义路径段。 仅允许小写字母、数字和连字符(通过正则验证器确保:^[a-z0-9\-]+$)。 |
| URL后缀 | url_suffix | CharField | '.html' | max_length=10, 可为空 (blank=True)
|
model_name为 news,slug为 latest-updates,custom_slug设置为 channel,custom_article设置为 story,random_str示例为 a1b2c3。配置方案 ( url_front) | 描述 | 列表页URL示例 ( list_url) | 内容页URL示例 ( detail_url) |
|---|---|---|---|
模型路径 ( model) | 使用模型名路径。 | /news/index.html/news/ | /news/1.html/news/a1b2c3.html/news/1(无后缀) |
单级Slug ( slug) | 使用栏目/文章的slug。列表页会加上 /index。 | /latest-updates/index.html/latest-updates/index(无后缀) | /latest-updates/1.html/latest-updates/a1b2c3.html/latest-updates/1(无后缀) |
随机字符 ( random) | 使用随机字符串作为路径段。 | /latest-updates/index.html/latest-updates/index(无后缀) | /a1b2c3/1.html/a1b2c3/1(无后缀) |
自定义路径 ( custom) | 分别自定义栏目和文章的固定路径。 | /channel/1.html/channel/ | /story/1.html/{custom_article}/1.html |
- URL中的
1代表mid='id'(数字ID),a1b2c3代表mid='hash'(哈希值)。 - 后缀
.html,.htm,.shtml会根据url_suffix设置变化,表格中以.html和“无后缀”为例。 - “多级Slug (
moreslug)” 方案在URL_FRONT_CHOICES列表中未定义,但在_build_list_url和_build_detail_url方法中存在逻辑。如果启用,其URL可能类似:- 列表页:
/slug1/slug2/index.html - 内容页:
/slug1/slug2/slug/1.html