当前位置: 移动技术网 > IT编程>开发语言>PHP > thinkPHP5.0框架URL访问方法详解

thinkPHP5.0框架URL访问方法详解

2017年12月12日  | 移动技术网IT编程  | 我要评论

智取金城,褴褛筚路,济宁声远论坛

本文实例讲述了thinkphp5.0框架url访问方法。分享给大家供大家参考,具体如下:

url设计

thinkphp5.0在没有启用路由的情况下典型的url访问规则是:

http://servername/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]

支持切换到命令行访问,如果切换到命令行模式下面的访问规则是:

>php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...]

可以看到,无论是url访问还是命令行访问,都采用path_info访问地址,其中path_info的分隔符是可以设置的。

注意:5.0取消了url模式的概念,并且普通模式的url访问不再支持,如果不支持pathinfo的服务器可以使用兼容模式访问如下:

http://servername/index.php(或者其它应用入口文件)?s=/模块/控制器/操作/[参数名/参数值...]

必要的时候,我们可以通过某种方式,省略url里面的模块和控制器。

url大小写

默认情况下,url是不区分大小写的,也就是说 url里面的模块/控制器/操作名会自动转换为小写,控制器在最后调用的时候会转换为驼峰法处理。

例如:

http://localhost/index.php/index/blog/read
// 和下面的访问是等效的
http://localhost/index.php/index/blog/read

如果访问下面的地址

http://localhost/index.php/index/blogtest/read
// 和下面的访问是等效的
http://localhost/index.php/index/blogtest/read

在这种url不区分大小写情况下,如果要访问驼峰法的控制器类,则需要使用:

http://localhost/index.php/index/blog_test/read

如果希望url访问严格区分大小写,可以在应用配置文件中设置:

// 关闭url中控制器和操作名的自动转换
'url_convert'  => false,

一旦关闭自动转换,url地址中的控制器名就变成大小写敏感了,例如前面的访问地址就要写成:

http://localhost/index.php/index/blogtest/read

但是下面的url访问依然是有效的:

http://localhost/index.php/index/blog_test/read

下面的url访问则无效:

http://localhost/index.php/index/blogtest/read

需要注意:路由规则中定义的路由地址是按照控制器名的实际名称定义(区分大小写)。

隐藏入口文件

在thinkphp5.0中,出于优化的url访问原则,还支持通过url重写隐藏入口文件,下面以apache为例说明隐藏应用入口文件index.php的设置。

下面是apache的配置过程,可以参考下:

1、httpd.conf配置文件中加载了mod_rewrite.so模块
2、allowoverride none 将none改为 all
3、在应用入口文件同级目录添加.htaccess文件
,内容如下:

<ifmodule mod_rewrite.c>
options +followsymlinks -multiviews
rewriteengine on
rewritecond %{request_filename} !-d
rewritecond %{request_filename} !-f
rewriterule ^(.*)$ index.php/$1 [qsa,pt,l]
</ifmodule>

更多关于thinkphp相关内容感兴趣的读者可查看本站专题:《thinkphp入门教程》、《thinkphp模板操作技巧总结》、《thinkphp常用方法总结》、《codeigniter入门教程》、《ci(codeigniter)框架进阶教程》、《zend framework框架入门教程》、《smarty模板入门基础教程》及《php模板技术总结》。

希望本文所述对大家基于thinkphp框架的php程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网