a、在網站public目錄下新建admin.phpphp
b、打開admin.phphtml
<?php
// [ 應用入口文件 ]
// 定義應用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導文件
require __DIR__ . '/../thinkphp/start.php';
一、實現功能thinkphp
index.php 這個入口文件 只能去前臺模塊apache
admin.php 這個入口文件 只能去後臺模塊 建議後臺的入口文件稍微複雜些後端
二、如何實現數組
在入口文件中 app
define('BIND_MODULE','index');//綁定前臺模塊
define('BIND_MODULE','admin');//綁定後臺模塊
三、url地址框架
a、入口綁定模塊以前前後端分離
http://www.tp5.com/入口文件/模塊/控制器/操做iview
b、入口綁定模塊以後
http://www.tp5.com/入口文件/控制器/操做
一、開始apache 的重寫 F:\phpStudy\PHPTutorial\Apache\conf\httpd.conf
# 把註釋去掉
更改後:LoadModule rewrite_module modules/mod_rewrite.so
二、設置訪問權限 AllowOverride none改成All
三、入口文件 ,在網站public目錄下新建.htaccess
//phpstudy的第一種寫法
<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>
//第一種方法很差使的話 使用第二種方法
<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>
四、重啓服務
五、url地址變化
a、隱藏以前
http://www.tp5.com/index.php/Index/test
b、隱藏以後
http://www.tp5.com/Index/test
1.支持三種方式的url解析規則
2.路由只針對應用,不針對模塊,所以路由的設置也是針對應用下面的全部模塊。
3.若是有些模塊不想使用路由 關閉後臺模塊,在後臺入口文件添加下面這句話,寫在
加載框架引導文件以後 不然報錯
// 加載框架引導文件 require __DIR__ . '/../thinkphp/start.php';
//關閉admin模塊下的路由 \think\App::route(false);
四、路由模式
a、普通模式
1.關閉路由,徹底使用默認的PATH_INFO方式URL
2.形式:http://www.tp5.com/admin.php/Index/index
3.如何配置:
//是否開啓路由
‘url_route_on’ => false,
//是否強制使用路由
'url_route_must' => false,
b、混合模式
1.定義:開啓路由,並使用路由定義+默認 PATH_INFO 方式的混合
2.如何設置
//是否開啓路由
‘url_route_on’ => true,
//是否強制使用路由
'url_route_must' => false,
c、強制模式
1.定義:
開啓路由,並設置必須定義路由才能訪問
2.如何設置
//是否開啓路由
‘url_route_on’ => true,
//是否強制使用路由
'url_route_must' =>true,
五、設置路由-動態單個註冊
a、設置路由文件
application\route.php
b.、如何設置
//引入系統類 use think\Route; //定義路由規則
//設置了路由以後,就不能使用PATH_INFO模式訪問了
//註冊路由訪問到index模塊Index控制器index方法 Route::rule('/','index/Index/index');
//註冊路由訪問到index模塊Index控制器test方法
Route::rule('test','index/Index/test');
c、路由的形式
1.靜態地址路由
// 註冊路由test 訪問到Index模塊index控制器test方法
Route::rule('test','index/Index/test');
2.給路由帶參數
//註冊帶參數路由
//http://www.tp5.com/course/1 路由模式
//http://www.tp5.com/index/Index/course/id/1 普通模式
Route::rule('course/:id','index/Index/course');
//若是路由設置兩個參數,必須帶兩個參數
Route::rule('time/:year/:mouth','index/Index/shijian');
3.可選參數路由
//http://www.tp5.com/time/2017
//http://www.tp5.com/time/2018/5
Route::rule('time/:year/[:mouth]','index/Index/shijian');
四、全動態路由(不建議使用)
Route::rule(':a/:b','index/Index/dongtai');
5.徹底匹配路由
//http://www.tp5.com/wanquan 能夠訪問
//http"//www.tp5.com/wanquan/ada/asf/a/f 不能夠訪問
Route::rule('wanquan$','index/Index/wanquan');
6.路由額外帶參數
Route::rule('test1','index/Index/test1?id=12&name=adasfds');
d、設置請求類型
一、tp中請求類型
get、post、put、delete
二、Route::rule() 默認支持全部請求類型
三、設置全部請求
//支持get請求 Route::rule('type','index/Index/type','get'); Route::get('type','index/Index/type'); //支持post請求 Route::rule('type','index/Index/type','post'); Route::post('type','index/Index/type'); //同時支持get和post Route::rule('type','index/Index/type','get|post'); //支持全部請求 Route::rule('type','index/Index/type','*'); Route::any('type','index/Index/type'); //支持put請求 Route::rule('type','index/Index/type','put'); Route::put('type','index/Index/type'); //支持delete請求 Route::rule('type','index/Index/type','delete'); Route::delete('type','index/Index/type');
四、如何模擬put和delete請求
<form action="" method="post"> post 重要 <p> <input type="hidden" name="_method" value="PUT"> **隱藏域重要 <input type="text" name="name"> </p> <p> <input type="submit" value="提交"> </p> </form>
六、設置路由-動態批量註冊
a、基本格式
Route::rule([ '路由規則1'=>'路由地址和參數', '路由規則2'=>['路由地址和參數','匹配參數(數組)','變量規則(數組)'] ... ],'','請求類型','匹配參數(數組)','變量規則');
b、使用
Route::rule([ 'test' => 'index/Index/test', 'course/:id' => 'index/Index/course' ]);
Route::get([ 'test' => 'index/Index/test', 'course/:id' => 'index/Index/course' ]);
七、設置路由-配置文件批量註冊
return [ 'test' => 'index/Index/test', 'course/:id' => 'index/Index/course' ];
八、變量規則
//設置路由參數id必須是數字,必須1到3位
Route::rule('course/:id','index/Index/course','get',[],["id" => "\d{1,3}"]);
九、路由參數
//路由參數method 請求方式必須是get
//路由參數ext 主要設置路由的後綴
Route::rule('course/:id','index/Index/course','get',['method'=>'get','ext'=>'html'],["id" => "\d{1,3}"]);
十、資源路由
a、後臺功能
add頁面、展現頁面、刪除功能、修改頁面、修改功能、增長功能
a、聲明資源路由
Route::resource('blog','index/Blog');
b、會自動註冊七個路由規則
十一、設置快捷路由
a、聲明
Route::controller('user','index/User');
b、使用:
namespace app\index\controller; class User { public function getInfo() { } public function getPhone() { } public function postInfo() { } public function putInfo() { } public function deleteInfo() { } }
c、URL訪問
get http://localhost/user/info get http://localhost/user/phone post http://localhost/user/info put http://localhost/user/info delete http://localhost/user/info
十二、生成URL地址
a、系統類
use think\url
url::build('index/Index/index');
b、系統方法
url('index/Index/index');
c、使用
看手冊詳細介紹