Typecho默认路由表一览

路由器(Route)

路由器(Route)是Typecho系统中的一个重要组件,类似mod_rewrite的机制,来实现独立的URL和指定的controller/action/params的映射规则.它通过识别诸如http://localhost/2008/10/1/hello-world此类的伪地址,它在文件系统中并不存在但通过结合rewrite我们可以模拟出这样一个静态地址,路由器在路由表中找到匹配记录,并将用户请求导向最终应答页面.

通过这个机制,Typecho可以拥有简洁且可配置的URL并且可以摆脱对mod_rewrite的依赖.在一般的系统中,都会有一个朴素的路由系统,它们通过识别GET中的默认参数值来达到导向的目的.而在Typecho中我们通过匹配系统的伪路径来导向目的,路由表是可以配置的,并且可以动态地增加.路由基类在includes/Route.php里面.

相关变量:

$current:当前路由名称. $_parameters:数组,路径解析值列表.

相关函数:

target($path):路由指向函数,返回根据pathinfo和路由表配置的目的文件名.$path为目的文件所在目录. getParameter($key):获取路径解析值. parse($name, array $value = NULL, $prefix = NULL):路由反解析.$name为路由配置表名称,$value为路由填充值,默认为空,$prefix为最终合成路径的前缀,默认为空.

[index] => Array ( 
  [url] => / 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^[/]?$| 
  [format] => / 
  [params] => Array ( ) 
) 
[archive] => Array ( 
  [url] => /blog/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/blog[/]?$| 
  [format] => /blog/ 
  [params] => Array ( ) 
) 
[do] => Array ( 
  [url] => /action/[action:alpha] 
  [widget] => Widget_Do 
  [action] => action [regx] => |^/action/([_0-9a-zA-Z-]+)[/]?$| 
  [format] => /action/%s 
  [params] => Array ( [0] => action ) 
) 
[post] => Array ( 
  [url] => /[slug].html 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([^/]+)\.html[/]?$| 
  [format] => /%s.html 
  [params] => Array ( [0] => slug ) 
) 
[attachment] => Array (
  [url] => /attachment/[cid:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/attachment/([0-9]+)[/]?$| 
  [format] => /attachment/%s/ 
  [params] => Array ( [0] => cid ) 
) 
[category] => Array ( 
  [url] => /[slug]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([^/]+)[/]?$| [format] => /%s/ 
  [params] => Array ( [0] => slug ) 
) 
[tag] => Array ( 
  [url] => /tag/[slug]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/tag/([^/]+)[/]?$| 
  [format] => /tag/%s/ [params] => Array ( [0] => slug ) 
) 
[author] => Array ( 
  [url] => /author/[uid:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/author/([0-9]+)[/]?$| 
  [format] => /author/%s/ 
  [params] => Array ( [0] => uid ) 
) 
[search] => Array ( 
  [url] => /search/[keywords]/ 
  [widget] => Widget_Archive 
  [action] => render [regx] => |^/search/([^/]+)[/]?$| 
  [format] => /search/%s/ 
  [params] => Array ( [0] => keywords ) 
) 
[index_page] => Array ( 
  [url] => /page/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/page/([0-9]+)[/]?$| 
  [format] => /page/%s/ 
  [params] => Array ( [0] => page ) 
) 
[archive_page] => Array ( 
  [url] => /blog/page/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/blog/page/([0-9]+)[/]?$| 
  [format] => /blog/page/%s/ 
  [params] => Array ( [0] => page ) 
) 
[category_page] => Array ( 
  [url] => /[slug]/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([^/]+)/([0-9]+)[/]?$| 
  [format] => /%s/%s/ 
  [params] => Array ( [0] => slug [1] => page ) 
) 
[tag_page] => Array ( 
  [url] => /tag/[slug]/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/tag/([^/]+)/([0-9]+)[/]?$| 
  [format] => /tag/%s/%s/ 
  [params] => Array ( [0] => slug [1] => page ) 
) 
[author_page] => Array ( 
  [url] => /author/[uid:digital]/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/author/([0-9]+)/([0-9]+)[/]?$| 
  [format] => /author/%s/%s/ 
  [params] => Array ( [0] => uid [1] => page ) 
) 
[search_page] => Array ( 
  [url] => /search/[keywords]/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/search/([^/]+)/([0-9]+)[/]?$| 
  [format] => /search/%s/%s/ 
  [params] => Array ( [0] => keywords [1] => page ) 
) 
[archive_year] => Array ( 
  [url] => /[year:digital:4]/ 
  [widget] => Widget_Archive [action] => render 
  [regx] => |^/([0-9]{4})[/]?$| 
  [format] => /%s/ 
  [params] => Array ( [0] => year ) 
) 
[archive_month] => Array ( 
  [url] => /[year:digital:4]/[month:digital:2]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([0-9]{4})/([0-9]{2})[/]?$| 
  [format] => /%s/%s/ 
  [params] => Array ( [0] => year [1] => month ) 
) 
[archive_day] => Array ( 
  [url] => /[year:digital:4]/[month:digital:2]/[day:digital:2]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([0-9]{4})/([0-9]{2})/([0-9]{2})[/]?$| 
  [format] => /%s/%s/%s/ 
  [params] => Array ( [0] => year [1] => month [2] => day ) 
) 
[archive_year_page] => Array ( 
  [url] => /[year:digital:4]/page/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([0-9]{4})/page/([0-9]+)[/]?$| 
  [format] => /%s/page/%s/ 
  [params] => Array ( [0] => year [1] => page ) 
) 
[archive_month_page] => Array ( 
  [url] => /[year:digital:4]/[month:digital:2]/page/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([0-9]{4})/([0-9]{2})/page/([0-9]+)[/]?$| 
  [format] => /%s/%s/page/%s/ 
  [params] => Array ( [0] => year [1] => month [2] => page ) 
) 
[archive_day_page] => Array ( 
  [url] => /[year:digital:4]/[month:digital:2]/[day:digital:2]/page/[page:digital]/ 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)[/]?$| 
  [format] => /%s/%s/%s/page/%s/ 
  [params] => Array ( [0] => year [1] => month [2] => day [3] => page ) 
) 
[comment_page] => Array ( 
  [url] => [permalink:string]/comment-page-[commentPage:digital] 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^(.+)/comment\-page\-([0-9]+)[/]?$|
  [format] => %s/comment-page-%s 
  [params] => Array ( [0] => permalink [1] => commentPage ) 
) 
[feed] => Array ( 
  [url] => /feed[feed:string:0] 
  [widget] => Widget_Archive 
  [action] => feed 
  [regx] => |^/feed(.*)[/]?$| 
  [format] => /feed%s 
  [params] => Array ( [0] => feed ) 
) 
[feedback] => Array ( 
  [url] => [permalink:string]/[type:alpha] 
  [widget] => Widget_Feedback 
  [action] => action 
  [regx] => |^(.+)/([_0-9a-zA-Z-]+)[/]?$| 
  [format] => %s/%s 
  [params] => Array ( [0] => permalink [1] => type ) 
) 
[page] => Array ( 
  [url] => /[slug].html 
  [widget] => Widget_Archive 
  [action] => render 
  [regx] => |^/([^/]+)\.html[/]?$| 
  [format] => /%s.html 
  [params] => Array ( [0] => slug ) 
) 

数据库中的位置

默认的路由信息存储在数据表“typecho_options”中,字段名是“routingTable”;

select * from typecho_options where name='routingTable';

在typecho中的调用

如下语句可以将路由表打印在前端页面上,当然仅仅只是排查之用,谁也不愿意在前端看到这么一堆乱糟糟的数据。

<?php print_r(Helper::options()->routingTable);?>

标签: typecho

移动端可扫我直达哦~

推荐阅读

thumbnail 2025-06-08

typecho前台ajax登录与错误处理

尝试了在主题前台做一个登录框,登陆的功能是实现了,有一个小小的不便,就是如果输错了密码,因为页面又跳回了首页,所以弹出式登录框又被隐藏了,登录成功与否不够明显,二次登录的场合操作也较繁琐,所以想实现前台以ajax的方式登录。实现aja...

建站相关 typecho

thumbnail 2025-06-08

聊聊html里的head部分

HTML文档的<head>部分是一个容器,用于包含文档的元数据(metadata)和链接到外部资源的信息,这些内容不会直接显示在网页上,但对网页的功能和表现至关重要。主要元素和功能1. 基础元素<title>:...

建站相关 typecho

thumbnail 2025-06-04

typecho前端实现站点语言的切换

前端修改的数据能及时反馈到后端,那当然需要一个前后端都可以无障碍读取的东西,所以最初是想要用localstorage,但发现php无法直接读取其值,所以就换成了cookie。前端通过js来设置参数值:document.cookie='...

建站相关 typecho

thumbnail 2025-06-02

typecho 主题中的模板与模块的概念

模板是 typecho 主题中一个重要的概念,我们说过typecho的极简主题可以只存在 index.php 这一个文件,但需要展现分类页的时候,typecho事实上会先去寻找名为 category.php 的分类页模板,文章页当然也...

建站相关 typecho

thumbnail 2025-06-02

typecho的几种常见的文章列表调用

处理好了header与面包屑,接下来就按照自己的需求自由发挥了,先放一个分类列表,再挑出一个喜欢的标签,自定义一个该标签下内容展示模块。Typecho 提供了多种文章循环方式,以下是常用的几种方法:标准文章循环<?php whi...

建站相关 typecho

thumbnail 2025-06-02

在typecho里实现面包屑导航

什么是面包屑导航面包屑导航是一种网站导航方式,通常在网站顶部显示,大多会放在站点header的下方,用于显示用户当前位置。 面包屑导航由导航元素构成,每个元素代表一个网站导航项,各个元素通常包含对应链接,供用户跳转。面包屑导航示例首页...

建站相关 typecho

thumbnail 2025-05-29

关于typecho中的路由知识

路由(Routing)是博客系统中将URL地址映射到具体处理逻辑的机制,它决定了当用户访问某个网址时,系统应该执行什么操作、显示什么内容。typecho站点一般都会开启伪静态,伪静态通过URL重写将"漂亮"的URL映射到实际的文件路径...

建站相关 typecho

thumbnail 2025-05-29

Typecho 模板中的翻译函数 _t 与 _e

在 Typecho 模板开发中,_t 和 _e 是用于国际化处理的函数,核心区别在于输出方式:"_t" 函数‌‌功能‌:获取翻译后的字符串但不直接输出,需结合 echo 使用。‌示例‌:<?php echo _t('欢迎语');...

建站相关 typecho

thumbnail 2025-05-26

typecho文章自定义字段的删除与修改

涉及数据库的操作,务必请提前做好备份!提前做好备份!!做好备份!!!小鸟数据的当前主题的缩略图字段命名为augPostThumb,这几天在尝试完善一下原有主题,下载了原站的数据库导入了测试站用于测试页面效果,测试主题的缩略图相关字段拟...

建站相关 typecho

thumbnail 2025-05-26

typecho的文章自定义字段的知识笔记

在typecho中,除了可以自定义设置项之外,我们也可以给文章自定义一些额外的字段,比如给文章编辑界面添加一个缩略图选项,或者增加一个keywords输入框,用来修改编辑当前内容页的关键词信息。// 主题设置 function th...

建站相关 typecho