您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
thinkphp-url访问的四种模式、调试模式debug、url分隔符
发布时间:2015-11-12 13:54:05编辑:雪饮阅读()
thinkphp用的最常见的是pathinfo访问模式:
第一种访问模式:pathinfo访问模式
http://www.think.cn/thinkphp/index.php/index/show/name/123/age/18
我们的入口文件index.php中配置的应用是home即前台应用,所以此处的模块名就是指Home/Lib/Action中的IndexAction.class.php文件,此路径中的一个文件即一个模块。
模块文件名命名规则"xxxAction.class.php"。模块文件里面是一个继承Action类的子类。模块文件中类的声明可以参考index模块如下:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
echo "我是index模块下面的index方法";
}
public function show(){
echo "访问了index模块的show方法,欢迎你".$_GET["name"]."你的年龄是:".$_GET["age"];
}
}
url分隔符的修改:
Home/Conf中的配置文件config.php中可以配置url的分隔符,thinkphp默认分隔符是“/”我们可以将其改为其它分隔符如我们改为“-”。
首先在该配置文件中增加键与值如下:
<?php
return array(
//'配置项'=>'配置值'
'URL_PATHINFO_DEPR'=>'-',//修改url分隔符
);
?>
修改url分隔符之后的访问格式:
http://www.think.cn/thinkphp/index.php/index-show-name-123-age-18
修改后要先删除掉home/Runtime文件夹,否则就会有缓存,不会立马生效。
如果想要立马生效配置文件的修改,则需要开启thinkphp的debug模式即调试模式,该模式在thinkphp中默认是关闭的。
开启thinkphp的debug调试模式:
开启thinkphp的调试模式只需要在入口文件index.php中新增一个常量即可如下:
<?php
//确定应用名称
define('APP_NAME','Home');
//确定应用路径
define('APP_PATH','./Home/');
//开启debug调试模式
define('APP_DEBUG',true);
//应用核心文件
require './ThinkPHP/ThinkPHP.php';
?>
如在开启debug之前url可以这样访问:
http://www.think.cn/thinkphp/index.php/index-show-name-123-age-18
而开启debug之后url必须这样访问:
http://www.think.cn/thinkphp/index.php/Index-show-name-123-age-18
即模块名必须和模块名所在文件名一致,区分大小写
http://www.think.cn/thinkphp/index.php?m=Index&a=show&name=xxx&age=1212123
先开启apache的rewrite,然后建立rewrite规则于.htaccess文件中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
然后让.htaccess文件放置于项目根路径即入口文件所在目录
然后还需要在虚拟主机配置文件的http-vhosts.conf配置文件中
Allowoverride None 将None改为All
rewrite的访问模式如:
http://www.think.cn/thinkphp/Index/index
这样可以隐藏掉index.php为了安全考量以及seo优化方面的
http://www.think.cn/thinkphp/index.php?s=Index/show/name/xy/age/18
关键字词:thinkphp,url,debug