Maison >développement back-end >tutoriel php >ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结,thinkphppathinfo_PHP教程
本文针对ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写相关知识进行了总结归纳,分享给大家便于查询和借鉴。具体归纳如下:
1、pathinfo
访问模块IndexAction.class.php下边的test方法
http://localhost/index.php?m=Index&a=test 等同于 http://localhost/index.php/Index/test
2、四种路径访问模式
在config目录下边来做修改 URL_MODEL的值,分别表述如下:
值为0 叫做普通模式。如:http://localhost/index.php?m=模块&a=方法
值为1 叫做pathinfo模式。如:http://localhost/index.php/模块/方法
值为2 叫做rewrite重写(伪静态) 可以自己写相关的rewrite规则,也可以使用系统为我们提供的rewrite规则隐藏掉index.php,生成:http://localhost/模块/方法
值为3 叫做兼容模式。当服务器上面不支持pathinfo模式的时候,但是你又在之前的路径访问格式上面,全部用的是pathinfo格式。那么它会提示你路径格式不正确。那么,你就可以用标号为3的兼容模式来处理。他的路径访问类似于http://localhost/index.php?s=模块/方法
3、URL重写步骤:
(1)、D:\wamp\wamp\Apache2\conf\httpd.conf开启apache服务器中的URL_REWRITE模块
(2)、AllowOverride None 将 None 改为 All
(3)、确保config.php配置文件中 URL_MODEL 设置为 2
(4)、把 .htaccess 文件放到入口文件的同级目录下
采用URL重写利于seo,不过会加大服务器的性能消耗。
希望本文所述对大家ThinkPHP程序设计有所帮助。
是可以用$_GET获取的
举个例子
index.php/action/function/id/2
$_GET[cation]就是function
$_GET[id]就是2
懂了吗?只是形式换了,值一样是可以取的
localhost/think/index.php/Index/index这一个是伪静态URL地址,为了使页面更好的被搜索引擎抓取。搜索引擎更偏好于静态页面,动态页面又一个特点就是有个?号,所以这样写就把它去掉了。
localhost/...=index这一个是最原始的访问方法。典型的动态网页URL地址。对搜索引擎不友好。
localhost/think/index.php/Index/index?id=1这个是伪静态的兼容性写法。有的服务器不支持伪静态,所以这样写。
还有一种方式你没提出来:即localhost/think/index/Index/index。他是apache的rewrite功能,需要开启rewrite模块。但是有的服务器并没有开启,并且开启的话会增加服务器的资源消耗。
总结:你在伪静态后面可以添加.html或者.htm等静态页面的扩展名,把伪静态做的更加完美,TP框架有这样的功能,你研究下。
注:rewrite其实也是伪静态的一种。