
Phpcms 的路由功能主要用于自定义 URL 访问路径,提升 URL 可读性和 SEO 效果。通过设置路由规则,可以将复杂的参数型 URL 映射为简洁、友好的静态化路径。
路由的基本用法
Phpcms 的路由配置文件位于 phpcms/config/route.php,该文件返回一个数组,定义各个站点的路由规则。默认情况下,系统使用模块-控制器-方法的访问模式(如 index.php?m=content&c=index&a=show),通过路由可将其改为类似 /news/2023/10/12.html 的形式。
基本语法格式如下:
return array( ‘siteid’ => array( ‘自定义路径规则’ => ‘目标模块/控制器/方法’, ),);
例如,将新闻详情页的 URL 重写:
立即学习“PHP免费学习笔记(深入)”;
return array( 1 => array( ‘news/show/’ => ‘content/index/show’, ),);
访问 /news/show/123 时,实际调用的是 content 模块下的 index 控制器的 show 方法,并传入 id=123。
路由规则的常用写法
Phpcms 支持通配符和正则匹配,灵活定义路径映射。
<param>:表示动态参数,会被自动解析为 GET 参数。例如:’article/<id>’ => ‘content/index/show’ 访问 /article/5 时,$_GET[‘id’] = 5。 <param:\d+>:限制参数类型,如只接受数字。’list/<catid:\d+>’ => ‘content/category/index’ 表示 catid 必须是数字。 多段路径匹配:’topic/<name>’ => ‘special/index/view’ /topic/php 效果等同于访问 special 模块 view 方法,name=php。
多站点路由管理
如果系统启用了多站点,每个站点可独立配置路由。route.php 中以站点 ID(siteid)为键名分别设置:
return array( 1 => array( ‘news/<id>’ => ‘content/index/show’, ), 2 => array( ‘blog/<id>’ => ‘content/index/show’, ),);
这样不同站点可拥有不同的 URL 规则,互不干扰。
路由生效前提与注意事项
要使路由正常工作,需确保以下几点:
服务器启用 rewrite 模块(Apache 需 .htaccess 支持,Nginx 需配置重定向规则)。 Phpcms 后台开启“URL 静态化”选项(在“设置”->“URL 规则”中配置)。 路由规则从上到下匹配,遇到第一个符合的即停止,注意顺序优先级。 修改 route.php 后无需后台更新缓存,但建议清除系统缓存以确保生效。
基本上就这些,合理使用路由可以让 Phpcms 的 URL 更清晰、更利于推广。关键是理解参数映射和路径匹配逻辑,结合实际栏目需求灵活配置。

评论(0)