thinkphp3.2.3中设置路由,优化url

thinkphp3.2.3中设置路由,优化url

需求: 访问这个目录的时候,http://xx.com/p-412313要重定向到(暂且这么叫)http://xx.com/Home/Blog/index/id/412313

 

就是看着好看

我的应用目录是Application。模块是Home

第一步:知道哪个文件怎么处理的路由
路由处理在think/Route.class.php

  1. // 动态路由处理  
  2.         $routes =   C(‘URL_ROUTE_RULES’);  
  3.         // var_dump($routes);  
  4.   
  5.         if(!empty($routes)) {  
  6.             // dump($routes);  
  7.             //array(1) {  
  8.                 // [“/^p-(\d+)$/”] => string(16) “Blog/index?id=:1”  
  9.             //}  
  10.             // echo “rount.class.php\n”;  
  11.             foreach ($routes as $rule=>$route){  
  12.                 if(is_numeric($rule)){  
  13.                     // 支持 array(‘rule’,’adddress’,…) 定义路由  
  14.                     $rule   =   array_shift($route);  
  15.                 }  
  16.      …代码多,仅标识位置  

第二步:在项目模块的配置文件下,设置配置文件 如下(因为tp是逐级加载配置文件,惯例配置->应用配置->模式配

置->调试配置->状态配置->模块配置->扩展配置->动态配置,这里属于模块配置

  1. <?php  
  2. return array(  
  3.   
  4.   
  5.     ‘MODULE_ALLOW_LIST’ => array(‘Home’,‘Admin’,‘Common’),  
  6.      ‘DEFAULT_MODULE’       =>    ‘Home’,  // 默认模块  
  7.      ‘DEFAULT_CONTROLLER’    =>  ‘Index’, // 默认控制器名称  
  8.      ‘DEFAULT_ACTION’        =>  ‘index’, // 默认操作名称  
  9.          //    路由规则  
  10.     ‘URL_ROUTER_ON’ => TRUE,  
  11.     ‘URL_ROUTE_RULES’ => array(  
  12.         ‘/^c-(\d+)$/’ => ‘Index/content?id=:1’  
  13.     ),  
  14.      ‘URL_ROUTER_ON ‘=>true,  
  15.      ‘URL_MODEL’          => ‘1’,  
  16.   
  17.      ‘URL_ROUTE_RULES’=>array(     
  18.        ‘/^p-(\d+)$/’ => ‘Home/Blog/index?id=:1’,//意思是访问x.com/p-34 会访问的是x.com/Blog/index/id/34  
  19.   
  20.          ),  
  21. );  

第三部:
如果你没有设置默认的模块 ,会出现找不到p-34这个模块的错误。
那么需要在index.php中设置
define(‘BIND_MODULE’,’Home’);

这样就可以了。

说明:如果没有第三步。默认打开是正常的就是这样。

thinkphp3.2.3中设置路由,优化url

但是

thinkphp3.2.3中设置路由,优化url

 

所以我们操作第三步,就可以实现如下效果了:

thinkphp3.2.3中设置路由,优化url

 

thinkphp3.2.3中设置路由,优化url

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113178.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Android LayoutParams详解「建议收藏」

    Android LayoutParams详解「建议收藏」在平时的开发过程中,我们一般是通过XML文件去定义布局,所以对于LayoutParams的使用可能相对较少。但是在需要动态改变View的布局参数(比如宽度、位置)时,就必须要借助这个重要的类了。本文将结合具体场景详细讲解LayoutParams的相关知识。

    2022年9月21日
  • 微信小程序列表页面_微信发现没有小程序

    微信小程序列表页面_微信发现没有小程序尽量不要用缓存去写效果展示:点击编辑,进入编辑页第一页编辑按钮:<viewclass=”bj-btn”bindtap=”redactGroup”data-id=”{{传递的id}}”>编辑</view>redactGroup方法:options.currentTarget.dataset.前面自定义的名字redactGroup(options){letid=options.currentTarget.dataset.id;…

    2022年8月19日
  • Androidlistview_android listview的用法

    Androidlistview_android listview的用法下面是activity:[java] viewplaincopypublic class MainActivity extends Activity {        private ListView mListView = null;      private List mList = null;        @Overri

    2022年10月3日
  • 币圈新手入门教程 怎么样投资数字货币[通俗易懂]

    币圈新手入门教程 怎么样投资数字货币[通俗易懂]普通人怎么投资数字货币?最近和几位朋友聊到数字货币,发现很多人虽然都想入场交易,但实际上还不是很了解这个东西,这对于新手来说,是非常危险的!笔者尽管现在主要做的是外汇,但是曾经也炒币有一段时间,今天就以自己的经验,给各位币圈新手做个入门普及。数字货币说到数字货币,先要了解区块链,数字货币实际上是区块链的一个产物,数字货币都是由区块链技术产生的,而区块链技术近几年的快速发展,也推动了数字货币…

    2022年8月29日
  • Android获取分辨率和像素密度「建议收藏」

    Android获取分辨率和像素密度「建议收藏」看了网上好多的代码说是获取的分辨率其实得到的是屏幕的宽和高。1.如何获取分辨率和像素密度2..实现代码如下 DisplayMetricslocalDisplayMetrics=newDisplayMetrics(); try{ DisplaylocalDisplay=getWindow().getWindowManager().getDefaultDispl

    2022年6月14日
  • 服务器硬件基础知识

    服务器硬件基础知识服务器的概述计算机的硬件主要有主机和输入/输出设备。主机包括机箱,电源,主板,CPU(中央处理器),内存,显卡,声卡,网卡,硬盘,光驱等。输入/输出包括显示器,键盘,鼠标,音箱,摄像头,打印机和扫描仪等。服务器服务器是指在网络环境下运行相应的应用软件,为网上用户提供共享信息资源和各种服务的一直高性能计算机。服务器的选择:处理器性能,I/O性能,管理性,可靠性,扩展性。同样…

    2022年7月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号