本章节我们来了解一下 ThinkPHP6.0 的 URL 访问模式,解析它的访问方法。
一、URL解析
ThinkPHP 框架非常多的操作都是通过 URL 来实现的。
1、URL解析格式
由于 TP6.0 默认是单应用模式,多应用需要作为扩展安装,避免混乱暂时搁置;
多应用:http://serverName/index.php/应用/控制器/操作/参数/值…;
单应用:http://serverName/index.php/控制器/操作/参数/值…;
http://serverName 是域名地址,比如 http://127.0.0.1:8000(tp的web服务)
或 http://localhost/tp6/public(apache的web服务)。
2、URL解析示例说明
其中index.php这个文件,是根目录下public/下的index.php(入口文件)。
控制器:app目录下有一个 controller 控制器目录的Test.php(新建一个控制器类)。
Test.php控制器的类名也必须是 class Test,否则错误。
<?php namespace app\controller; class Test { public function index() { return 'Test index...'; } public function hello($value = '') { return 'hello '.$value; } }
操作就是控制器类里面的方法,比如:index(默认免写)或 hello(必写)。
那么完整形式为:
http://localhost/tp6/public/index.php/test/hello/value/world http://127.0.0.1:8000/index.php/test/hello/value/world
3、设置URL重写
tp6/public/index.php 中的 index.php 可以省略,只要设置 URL 重写即可。
httpd.conf 配置文件中加载了 mod_rewrite.so 模块;
修改下面两个AllowOverride None ,将 None 改为 All;
重启apache服务,重新访问即可生效。
此时,路径变更为:
http://localhost/tp6/public/test/hello/value/world
http://127.0.0.1:8000/test/hello/value/world
二.URL 兼容模式
上个要点已经了解了 URL 所有访问规则,通过创建 Test 控制器更加了解;
如果上面那种形式的 URL 不支持的话,可以使用兼容模式的方式(不常用)来访问:
http://localhost/tp6/public/?s=test/hello/value/world