URL訪問
URL設計
ThinkPHP5.0在沒有啟用路由的(de)(de)情況下典型的(de)(de)URL訪問規則是:
//serverName/index.php(或者其它應用入口文件)/模塊/控制器/操作/[參數名/參數值...]
支持切換(huan)到(dao)命令行(xing)(xing)訪問(wen),如果(guo)切換(huan)到(dao)命令行(xing)(xing)模式下面的訪問(wen)規則是:
>php.exe index.php(或者其它應用入口文件) 模塊/控制器/操作/[參數名/參數值...]
可以看到,無論是URL訪問還是命令行訪問,都采用PATH_INFO訪問地址,其中PATH_INFO的分隔符(fu)是(shi)可以設(she)置的。
注意:5.0取消了URL模式的概念,并且普通模式的URL訪問不再(zai)支持(chi),但參數可以支持普通方(fang)式傳(chuan)值,例如:
>php.exe index.php(或者其它應用入口文件) 模塊/控制器/操作?參數名=參數值&...
如(ru)果不支(zhi)持PATHINFO的服務器(qi)可以使用兼容模式訪問如(ru)下:
//serverName/index.php(或者其它應用入口文件)?s=/模塊/控制器/操作/[參數名/參數值...]
必要(yao)的時候,我們可(ke)以通過某種方式,省略URL里面(mian)的模塊和控制器(qi)。
URL大小寫
默認情況下,URL是不區分大小寫的,也就是說 URL里面的模塊/控制器/操作(zuo)名會(hui)自動轉換為(wei)小(xiao)寫,控制器在最(zui)后調用的時候會(hui)轉換為(wei)駝峰法處理。
例如:
http://localhost/index.php/Index/Blog/read
// 和下面的訪問是等效的
http://localhost/index.php/index/blog/read
如果訪問(wen)下面的地(di)址
http://localhost/index.php/Index/BlogTest/read
// 和下面的訪問是等效的
http://localhost/index.php/index/blogtest/read
在這種URL不區(qu)分大小寫情況(kuang)下,如果要(yao)訪問(wen)駝(tuo)峰法(fa)的控制器類(lei),則(ze)需(xu)要(yao)使用:
http://localhost/index.php/Index/blog_test/read
模塊名(ming)和操作名(ming)會直接轉換為小寫處(chu)理(li)。
如果希望URL訪問嚴格區分大小寫(xie),可(ke)以在應用配置文件中設置:
// 關閉URL中控制(zhi)器和操作名的(de)自動轉換
'url_convert' => false,
一旦關(guan)閉(bi)自動轉換(huan),URL地址中的(de)控制(zhi)器名就(jiu)變成大小寫敏感(gan)了,例如前面的(de)訪(fang)問地址就(jiu)要寫成:
http://localhost/index.php/Index/BlogTest/read
但是下面的(de)URL訪問依(yi)然是有效的(de):
http://localhost/index.php/Index/blog_test/read
下面的(de)URL訪問則無效(xiao):
http://localhost/index.php/Index/blogtest/read
需要注意:路(lu)由規則中定義的路(lu)由地址是按照控制器名的實(shi)際名稱定義(區分(fen)大小寫(xie))。
隱藏入口文件
在ThinkPHP5.0中,出于優化的URL訪問原則,還支持通過URL重寫隱藏入口文件,下面以Apache為例(li)說(shuo)明隱藏應用入口(kou)文(wen)件index.php的設置。
下面是Apache的配置過程,可以參考下:
1、httpd.conf配置文件中加載了mod_rewrite.so模塊
2、AllowOverride None 將None改為 All
3、在應用入口文件同級目錄添加.htaccess文件,內容如下:
<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>
更(geng)多其它環境的(de)(de)隱(yin)藏(zang)入口文件參考(kao)后面的(de)(de) URL重寫(xie)
