浅析ThinkPHP中的pathinfo模式和URL重写


Posted in PHP onJanuary 06, 2014
http://serverName/appName/module/action/id/1/

这个就是pathinfo模式

在不考虑路由的情况下,第一个参数会被解析成模块名称(如果启用了分组的话,则依次往后递推),第二个参数会被解析成操作,后面的参数是显式传递的,而且必须成对出现,例如:

http://serverName/appName/module/action/year/2008/month/09/day/21/

通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。
下面是Apache的配置过程,可以参考下:
1、httpd.conf配置文件中加载了mod_rewrite.so模块
2、AllowOverride None 将None改为 All
3、确保URL_MODEL设置为2
4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

对于重来没接触过.htacces文件的可以百度一些,这里提醒一下,保存的文件名就是 .htaccess,可能看起来只有后缀,就是这样,别又在前面加个  ***.htaccess。

重启Apache之后,原来的
http://serverName/index.php/Blog/read/id/1
就可以通过访问
http://serverName/Blog/read/id/1
简化了URL地址

PHP 相关文章推荐
一个程序下载的管理程序(二)
Oct 09 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php+ajax无刷新分页实例详解
Dec 07 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 PHP
php Calender(日历)代码分享
Jan 03 #PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 #PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
Jan 03 #PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 #PHP
php curl模拟post提交数据示例
Dec 31 #PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 #PHP
PHP字符串的连接的简单实例
Dec 30 #PHP
You might like
默默简单的写了一个模板引擎
2007/01/02 PHP
PHP中的替代语法介绍
2015/01/09 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
jQuery 表格工具集
2010/04/25 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
webpack优化的深入理解
2018/12/10 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
django中的setting最佳配置小结
2017/11/21 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
Python笔记之工厂模式
2019/11/20 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
Python 如何创建一个线程池
2020/07/28 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
python re模块常见用法例举
2021/03/01 Python
什么是Smart Navigation?
2016/07/03 面试题
法人授权委托书公证范本
2014/09/14 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
礼貌问候语大全
2015/11/10 职场文书
python实现三次密码验证的示例
2021/04/29 Python
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技