drupal切换thinkphp5网址路由的操作方法

drupal 7 到8 升级方式实在是不好用,由于网站很久没有升级,很多模块也由于是个人维护,导致无法升级。

drupal的写法由区别于 传统的MVC,使用了特有的工程化特点,强行梳理drupal7 导入升级drupal8 ,也没有很大的必要。


所以决定迁移到现有的简单的mvc框架下。

选择thinkphp 5.1  国产优秀的php框架。


第一个要解决的问题就是网址路由,必须保证网址对应的内容不变,以达成对搜索引擎和用户的友好。


thinkphp5.1 的路由定义在 route/route.php  


回到drupal7 ,这个系统将所有的内容都做为了node来对待,配合 url_alias 也就是网址的seo转化表,实现了一些自定义网址的情况。

那么就需要在route中针对性的做一些编程修改

简单添加:

$url = explode("?",$_SERVER['REQUEST_URI'])[0];
$url = str_replace("''","",$url);
$url = str_replace("\"","",$url);
$url = str_replace("/","",$url);
$where = "alias = '{$url}'";
$urlalias_model = new UrlaliasModel();
$data = $urlalias_model->where($where)->find();
if(!empty($data)){
   Route::get('/:nid','blog/front/fenfa');
}


上述代码就是从url_alisa 中去找之前的内容对应的node 是否存在,如果存在,那么执行一个路由进行分发。


在对应控制分发中 ,就可以排查当前网址对应的是node 内容,列表,频道 等等内容,进行二次分发处理,加载数据渲染页面。