浅析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 相关文章推荐
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
php获取远程文件的内容和大小
Nov 03 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
JS Timing
2007/04/21 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python类继承用法实例分析
2014/10/10 Python
python分割文件的常用方法
2014/11/01 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
初中生个人学习的自我评价
2013/12/04 职场文书
军训教官感言
2014/03/02 职场文书
机电一体化专业求职信
2014/07/22 职场文书
中学教代会开幕词
2016/03/04 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫