首先说一下,TP5的文档真的是写得够简单够烂的。好多坑,大叔一边自己爬坑一边记录吧。
默认路径
其它不表,默认访问URL为:
http://serverName/public/index.php/模块/控制器/方法
fkl WEB部署目录(或者子目录)
├─application 应用目录
│ ├─common 公共模块目录(可以更改)
│ ├─index 模块目录
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ | ├─Index.php 类文件
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─think 命令行入口文件
例如大叔以目前的目录结构,在index模块的控制器Index中写一个方法,hello()
<?php
namespace appindexcontroller;
use thinkController;
class Index extends Controller{
public function Hello(){
echo 'Hello World!';
}
}
则URL访问为:http://localhost/fkl/public/index.php/index/index/hello
更改入口文件位置
大叔建议不更改默认的入口文件位置,因为大叔本地有多个项目,为了开发测试方便,大叔不想经过public而直接进行访问。需要在www目录下创建一个index.php
<?php
namespace think;
// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 加载框架基础引导文件
require __DIR__ . '/thinkphp/base.php';
// 执行应用并响应
Container::get('app', [APP_PATH])->run()->send();
此时的访问路径变为:http://localhost/fkl/index.php/index/index/hello
隐藏URL中的入口文件
这个官方给了文档,但其中的apache的重写目录有问题
在入口文件的根目录创建.htaccess文件,并内容如下。原本在public目录下也有此文件,大叔这里就要移动到www目录下,如果不改更入口目录就不需要移动,只需要更改内容
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
此时的访问路径变为:http://localhost/fkl/index/index/hello
楼主会tp么,有没有实际的案例教程?
教程直接搜,这里有不少慕课的教程