域名重定向及tp5的访问工作机制详解
标签(空格分隔): 重定向 tp5
在tp5中入口文件为tp5\public\index.php,即正常访问路径为http://127.0.0.1/tp5/public/index.php,所以如何修改访问路径http://127.0.0.1/也可以正常打开tp5的首页呢?
答案是域名重定向
修改apache的配置文件vhosts.conf,修改后内容如下:
<VirtualHost _default_:80>
DocumentRoot "C:\phpStudy\PHPTutorial\WWW\tp5\public" #修改文档根目录
<Directory "C:\phpStudy\PHPTutorial\WWW\tp5\public"> #这里可以不修改
Options -Indexes -FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
显示效果如下:

如果想通过本地hosts文件解析为域名访问:
win + r ,输入cmd,按下 Shift + Ctrl + Entrl,以管理员身份运行,输入以下命令
%添加本地hosts解析%
echo 127.0.0.1 www.tp5.com >> C:\Windows\System32\drivers\etc\hosts
%刷新浏览器dns缓存%<?php
namespace app\index\controller;
use think\View;
class Index
{
public function index()
{
$v = new View();
return $v->fetch();
}
public function index2()
{
return '素还真';
}
}
ipconfig /flushdns
通过域名访问如下:

tp5的访问工作机制
我们在index.php控制器中添加一个公共方法index2,代码如下:
<?php
namespace app\index\controller;
use think\View;
class Index
{
public function index()
{
$v = new View();
return $v->fetch();
}
public function index2()
{
return '素还真';
}
}
那么,我们如何访问index2这个方法呢?
答案:访问url为http://www.tp5.com/index.php/index/index/index2

问题来了,为什么这个url这个长,不好看,那就来分析看,这些url路径都代表了哪些内容?我们又可以采取哪些动作让url更简洁呢?
www.tp5.com与前文表示了定位到public目录下index.php代表了index.php这个文件,index第一个index代表了 浏览器访问index模块index第二个index代表了 浏览器访问index模块下的index类index2方法index2代表了 浏览器访问index模块下的 index类下的 index2
那么按照上面的分析,是否我们可以另外创建一个模块,取名叫做Pili(霹雳)拼音)
首先,来到application目录下,创建一个pili\controller文件夹:
win + r ,输入cmd,按住 Shift + Ctrl + Entry,执行以下命令
cd C:\phpStudy\PHPTutorial\WWW\tp5\application\
%控制器创建 c%
mkdir pili\controller
echo >> pili\controller\index.php
%视图创建 v%
mkdir pili\view\Shz
echo >> pili\view\Shz\index.html
模块目录结构如下:

打开pili\controller\index.php文件,对照着index\controller\index.php,描摹试试,代码如下:
#index.php 代码内容
namespace app\pili\controller;
use think\View;
/**
*
*/
class Shz extends View
{
function index()
{
return $this->fetch();
}
}
<!-- html模板内容 -->
<!DOCTYPE html>
<html>
<head>
<title>Pili模块</title>
</head>
<body>
<h4>Pili模块</h4>
</body>
</html>
浏览器访问url:http://www.tp5.com/index.php/pili/shz

套用上面url的分析,已理解url的每块内容
- index.php public入口文件
- pili 新创建的模块
- shz shz类
- index 未在url中出现,tp5默认使用index方法,同理可以创建其他方法
index2,以http://www.tp5.com/index.php/pili/shz/index2来访问
浙公网安备 33010602011771号