thinkphp3.2.3中设置路由,优化url
需求: 访问这个目录的时候,http://xx.com/p-412313要重定向到(暂且这么叫)http://xx.com/Home/Blog/index/id/412313
就是看着好看
我的应用目录是Application。模块是Home
第一步:知道哪个文件怎么处理的路由
路由处理在think/Route.class.php
- // 动态路由处理
- $routes = C('URL_ROUTE_RULES');
- // var_dump($routes);
- if(!empty($routes)) {
- // dump($routes);
- //array(1) {
- // ["/^p-(\d+)$/"] => string(16) "Blog/index?id=:1"
- //}
- // echo "rount.class.php\n";
- foreach ($routes as $rule=>$route){
- if(is_numeric($rule)){
- // 支持 array('rule','adddress',...) 定义路由
- $rule = array_shift($route);
- }
- ...代码多,仅标识位置
第二步:在项目模块的配置文件下,设置配置文件 如下(因为tp是逐级加载配置文件,惯例配置->应用配置->模式配
置->调试配置->状态配置->模块配置->扩展配置->动态配置,这里属于模块配置
- <?php
- return array(
- 'MODULE_ALLOW_LIST' => array('Home','Admin','Common'),
- 'DEFAULT_MODULE' => 'Home', // 默认模块
- 'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称
- 'DEFAULT_ACTION' => 'index', // 默认操作名称
- // 路由规则
- 'URL_ROUTER_ON' => TRUE,
- 'URL_ROUTE_RULES' => array(
- '/^c-(\d+)$/' => 'Index/content?id=:1'
- ),
- 'URL_ROUTER_ON '=>true,
- 'URL_MODEL' => '1',
- 'URL_ROUTE_RULES'=>array(
- '/^p-(\d+)$/' => 'Home/Blog/index?id=:1',//意思是访问x.com/p-34 会访问的是x.com/Blog/index/id/34
- ),
- );
第三部:
如果你没有设置默认的模块 ,会出现找不到p-34这个模块的错误。
那么需要在index.php中设置
define('BIND_MODULE','Home');
这样就可以了。
说明:如果没有第三步。默认打开是正常的就是这样。
但是
所以我们操作第三步,就可以实现如下效果了:
thinkphp3.2.3中设置路由,优化url的更多相关文章
- django 中的路由系统(url)
路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理 ...
- IIS 7.5 + asp.net MVC4 设置路由处理URL请求
使用asp.net MVC4开发的网站,在本地的VS012环境下运行,一切正常.但当发布到Windows 2008 R2(IIS7.5 + Framework4.5)上时,访问相关网页时,出现有下面的 ...
- node.js中的路由(url)初步
1.建立n4_root.js var http = require('http'); var url = require('url'); //这是node.js中自带的var router = req ...
- maven pom中 设置远程仓库url
<repositories> <!--<repository>--> <!--<id>spring-snapshots</id>--& ...
- 浅谈ThinkPHP3.2的子域名部署和路由优化(一)
前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...
- thinkPHP5.0 URL路由优化
在tp中访问页面的时候URL地址是 域名/模块/控制器/方法,在点击首页的时候URL是 域名/index/index/index 而不是只显示域名,这样不利于SEO,而且强迫症的我看着很不爽,这个时候 ...
- ASP.NET Core 中的SEO优化(3):自定义路由匹配和生成
前言 前两篇文章主要总结了CMS系统两个技术点在ASP.NET Core中的应用: <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET ...
- thinkphp3.2.3如何只改变地址url中的某一个分隔符,其它保持不变
今天教大家一个关于使用thinkphp3.2.3改变只改变地址url中的某一个分隔符的方法,首先大家来看看这个地址! 它的原始地址应该是/Home/Index/index/page/2.html,那我 ...
- ios系统中各种设置项的url链接
ios系统中各种设置项的url链接 在代码中调用如下代码:NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];[[UIApplic ...
随机推荐
- 【JZOJ5071】【GDSOI2017第二轮模拟】奶酪 树形dp
题面 CJY很喜欢吃奶酪,于是YJC弄到了一些奶酪,现在YJC决定和CJY分享奶酪. YJC弄到了n-1块奶酪,于是他把奶酪挂在了一棵n个结点的树上,每根树枝上挂一块奶酪,每块奶酪都有重量. YJC和 ...
- 源码:自己用Python写的iOS项目自动打包脚本
http://www.cocoachina.com/ios/20160307/15501.html 什么?又要测试包! 做iOS开发几年了,每天除了码代码,改Bug之外,最让我烦恼的莫过于测试的妹子跑 ...
- NOIP模拟 17.8.18
NOIP模拟17.8.18 A.小菜一碟的背包[题目描述]Blice和阿强巴是好朋友但萌萌哒Blice不擅长数学,所以阿强巴给了她一些奶牛做练习阿强巴有 n头奶牛,每头奶牛每天可以产一定量的奶,同时也 ...
- oralce Sysdba和sysoper的区别
Sysdba是一个允许读者执行任何数据库任务的全能特权.Sysoper是一个威力次之的特权,它赋予了启动和关闭能力,但限制其他管理性任务
- 封装好的MySQL.class.php类
封装好的MySQL.class.php类 作用:数据库操作类 <?php header('content-type:text/html;charset=utf-8'); class MySQLD ...
- python系列之(3)爬取豆瓣图书数据
上次介绍了beautifulsoup的使用,那就来进行运用下吧.本篇将主要介绍通过爬取豆瓣图书的信息,存储到sqlite数据库进行分析. 1.sqlite SQLite是一个进程内的库,实现了自给自足 ...
- LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
位运算相关 三道题 231. Power of Two Given an integer, write a function to determine if it is a power of two. ...
- springboot 自定义starter之AutoConfiguration【原】
八.自定义starter AutoConfiguration: 1.这个场景需要使用到的依赖是什么? 没有特别依赖的配置 2.如何编写自动配置 @Configuration //指定这个类是一个配置类 ...
- hdu2577 dp
也可以字符串搞.dp思路还是很清晰的.dp[][0]表示未锁定,dp[][1]表示锁定键. #include<stdio.h> #include<string.h> #defi ...
- [自考]C++中一些特殊用法 2016-10-16 22:12 318人阅读 评论(30) 收藏
做了一段时间的C++的试题了,总结一些这段时间经常犯错和需要注意的地方. 一.常用的保留字和符号 const 定义常量或者参数 void 定义空类型变量或空类型指针,或指定函数没有返回值 static ...