ThinkPHP-URL訪問
導(dǎo)航:返回上一頁
ThinkPHP框架基于模塊和操作的方式進(jìn)行訪問,由于ThinkPHP框架的應(yīng)用采用單一入口文件來執(zhí)行,因此網(wǎng)站的所有的模塊和操作都通過URL的參數(shù)來訪問和執(zhí)行。這樣一來,傳統(tǒng)方式的文件入口訪問會(huì)變成由URL的參數(shù)來統(tǒng)一解析和調(diào)度。
ThinkPHP強(qiáng)大的URL解析、調(diào)度以及路由功能為這個(gè)功能實(shí)現(xiàn)提供了有力的保證,并且可以在絕大多數(shù)的服務(wù)器環(huán)境里面部署成功。
ThinkPHP支持的URL模式包括普通模式、PATHINFO模式、REWRITE模式和兼容模式,并且都提供路由支持。默認(rèn)為PATHINFO 模式,提供最好的用戶體驗(yàn)和搜索引擎友好支持。
例如普通模式下面的URL為:
http://localhost/appName/index.php?m=moduleName&a=actionName&id=1
如果使用PATHINFO模式的話,URL成為:
http://localhost/appName/index.php/moduleName/actionName/id/1/
PATHINFO模式對(duì)以往的編程方式?jīng)]有影響,GET 和POST方式傳值依然有效,因?yàn)橄到y(tǒng)會(huì)對(duì)PATHINFO 方式自動(dòng)處理,例如上面URL地址中的id的值可以通過 $_GET['id'] 的方式正常獲取到。
如果使用REWRITE模式,通過配置URL可以成為:
http://localhost/appName/moduleName/actionName/id/1/
例如上面生成的myApp項(xiàng)目如果我們通過下面的URL訪問:
其實(shí)是定位到myApp項(xiàng)目的Index模塊的index操作,因?yàn)橄到y(tǒng)在沒有指定模塊和操作的時(shí)候,會(huì)執(zhí)行默認(rèn)的模塊和操作,這個(gè)在ThinkPHP的慣例配置里面是Index模塊和index操作。因此下面的URL和上面的結(jié)果是相同的:
http://localhost/myApp/index.php/Index/index/
通過項(xiàng)目配置參數(shù),我們可以改變這個(gè)默認(rèn)配置。
系統(tǒng)還支持分組模式和URL路由的功能,這些都能夠帶來URL的不同體驗(yàn)。