
PHPCMS 默认使用的是模块-控制器-方法的路由结构,但在实际开发中,可能需要自定义 URL 路由规则以优化 SEO 或提升用户体验。修改默认路由配置可以通过调整系统路由文件来实现。
1. 找到路由配置文件
PHPCMS 的路由配置通常位于以下路径:
/caches/configs/system.php —— 系统级配置(不推荐直接修改) /phpcms/modules/模块名/route.php —— 模块级路由配置文件
如果 route.php 文件不存在,可以手动创建。例如,为内容模块(content)设置自定义路由,则在 /phpcms/modules/content/ 目录下新建 route.php 文件。
2. 编写自定义路由规则
在 route.php 中返回一个数组,定义 URL 映射关系。格式如下:
立即学习“PHP免费学习笔记(深入)”;
return array( ‘news’ => array(‘m’ => ‘content’, ‘c’ => ‘index’, ‘a’ => ‘lists’, ‘catid’ => 5), ‘article/(:num)’ => array(‘m’ => ‘content’, ‘c’ => ‘index’, ‘a’ => ‘show’, ‘id’ => ‘:1’),);
说明:
‘news’:访问 index.php?m=content&c=index&a=lists&catid=5 可通过 news 地址访问 ‘article/(:num)’:匹配数字参数,:1 表示第一个括号内的值,用于传参 id (:num) 匹配数字,(:any) 匹配任意字符
3. 启用伪静态并配置 Web 服务器
完成路由设置后,需开启伪静态,并让服务器正确解析请求。
以 Apache 为例,在项目根目录的 .htaccess 添加:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
Nginx 用户则需在 server 配置中添加:
location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; }}
4. 更新缓存并测试
修改完成后,进入后台清除缓存(或删除 /caches/configs/route.php),然后访问你设置的自定义路径测试是否生效。
注意:确保 PHP 的 mod_rewrite 模块已启用,且 URL 重写功能正常工作。
基本上就这些,合理配置路由能提升网站可读性和维护性,但要注意避免规则冲突。修改前建议备份原文件。

评论(0)