thinkPHP5.0框架URL訪問(wèn)方法詳解
本文實(shí)例講述了thinkPHP5.0框架URL訪問(wèn)方法。分享給大家供大家參考,具體如下:
URL設(shè)計(jì)
ThinkPHP5.0在沒(méi)有啟用路由的情況下典型的URL訪問(wèn)規(guī)則是:
http://serverName/index.php(或者其它應(yīng)用入口文件)/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
支持切換到命令行訪問(wèn),如果切換到命令行模式下面的訪問(wèn)規(guī)則是:
>php.exe index.php(或者其它應(yīng)用入口文件) 模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
可以看到,無(wú)論是URL訪問(wèn)還是命令行訪問(wèn),都采用PATH_INFO訪問(wèn)地址,其中PATH_INFO的分隔符是可以設(shè)置的。
注意:5.0取消了URL模式的概念,并且普通模式的URL訪問(wèn)不再支持,如果不支持PATHINFO的服務(wù)器可以使用兼容模式訪問(wèn)如下:
http://serverName/index.php(或者其它應(yīng)用入口文件)?s=/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
必要的時(shí)候,我們可以通過(guò)某種方式,省略URL里面的模塊和控制器。
URL大小寫(xiě)
默認(rèn)情況下,URL是不區(qū)分大小寫(xiě)的,也就是說(shuō) URL里面的模塊/控制器/操作名會(huì)自動(dòng)轉(zhuǎn)換為小寫(xiě),控制器在最后調(diào)用的時(shí)候會(huì)轉(zhuǎn)換為駝峰法處理。
例如:
http://localhost/index.php/Index/Blog/read
// 和下面的訪問(wèn)是等效的
http://localhost/index.php/index/blog/read
如果訪問(wèn)下面的地址
http://localhost/index.php/Index/BlogTest/read
// 和下面的訪問(wèn)是等效的
http://localhost/index.php/index/blogtest/read
在這種URL不區(qū)分大小寫(xiě)情況下,如果要訪問(wèn)駝峰法的控制器類(lèi),則需要使用:
http://localhost/index.php/Index/blog_test/read
如果希望URL訪問(wèn)嚴(yán)格區(qū)分大小寫(xiě),可以在應(yīng)用配置文件中設(shè)置:
// 關(guān)閉URL中控制器和操作名的自動(dòng)轉(zhuǎn)換 'url_convert' => false,
一旦關(guān)閉自動(dòng)轉(zhuǎn)換,URL地址中的控制器名就變成大小寫(xiě)敏感了,例如前面的訪問(wèn)地址就要寫(xiě)成:
http://localhost/index.php/Index/BlogTest/read
但是下面的URL訪問(wèn)依然是有效的:
http://localhost/index.php/Index/blog_test/read
下面的URL訪問(wèn)則無(wú)效:
http://localhost/index.php/Index/blogtest/read
需要注意:路由規(guī)則中定義的路由地址是按照控制器名的實(shí)際名稱(chēng)定義(區(qū)分大小寫(xiě))。
隱藏入口文件
在ThinkPHP5.0中,出于優(yōu)化的URL訪問(wèn)原則,還支持通過(guò)URL重寫(xiě)隱藏入口文件,下面以Apache為例說(shuō)明隱藏應(yīng)用入口文件index.php的設(shè)置。
下面是Apache的配置過(guò)程,可以參考下:
1、httpd.conf配置文件中加載了mod_rewrite.so模塊
2、AllowOverride None 將None改為 All
3、在應(yīng)用入口文件同級(jí)目錄添加.htaccess文件,內(nèi)容如下:
<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>
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》、《smarty模板入門(mén)基礎(chǔ)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php微信公眾賬號(hào)開(kāi)發(fā)之五個(gè)坑(二)
這篇文章主要為大家詳細(xì)介紹了php微信公眾賬號(hào)開(kāi)發(fā)之五個(gè)坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Laravel實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼
本篇文章主要介紹了Laravel實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08使用PHPUnit進(jìn)行單元測(cè)試并生成代碼覆蓋率報(bào)告的方法
這篇文章主要介紹了使用PHPUnit進(jìn)行單元測(cè)試并生成代碼覆蓋率報(bào)告的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03php設(shè)計(jì)模式之策略模式實(shí)例分析【星際爭(zhēng)霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之策略模式,結(jié)合星際爭(zhēng)霸游戲案例形式分析了php策略模式相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03利用php做服務(wù)器和web前端的界面進(jìn)行交互
PHP與Web頁(yè)面交互是實(shí)現(xiàn)PHP網(wǎng)站與用戶(hù)交互的重要手段。本篇文章主要介紹了利用php做服務(wù)器和web前端的界面進(jìn)行交互,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-10-10詳解關(guān)于php的xdebug配置(編輯器vscode)
這篇文章主要介紹了詳解關(guān)于php的xdebug配置(編輯器vscode),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01