偽靜態(tài)
URL偽靜態(tài)通常是為了滿足更好的SEO效果,ThinkPHP支持偽靜態(tài)URL設(shè)置,可以通過(guò)設(shè)置url_html_suffix
參數(shù)隨意在URL的最后增加你想要的靜態(tài)后綴,而不會(huì)影響當(dāng)前操作的正常執(zhí)行。例如,我們?cè)O(shè)置
'url_html_suffix' => 'shtml'
的話,我們可以把下面的URL http://serverName/Home/Blog/read/id/1
變成 http://serverName/Home/Blog/read/id/1.shtml
后者更具有靜態(tài)頁(yè)面的URL特征,但是具有和前面的URL相同的執(zhí)行效果,并且不會(huì)影響原來(lái)參數(shù)的使用。
默認(rèn)情況下,偽靜態(tài)的設(shè)置為html
,如果我們?cè)O(shè)置偽靜態(tài)后綴為空字符串,
'url_html_suffix'=>''
則支持所有的靜態(tài)后綴訪問(wèn),如果要獲取當(dāng)前的偽靜態(tài)后綴,可以使用Request
對(duì)象的ext
方法。
例如:
http://serverName/index/blog/3.html
http://serverName/index/blog/3.shtml
http://serverName/index/blog/3.xml
http://serverName/index/blog/3.pdf
都可以正常訪問(wèn)。
我們可以在控制器的操作方法中獲取當(dāng)前訪問(wèn)的偽靜態(tài)后綴,例如:
$ext = Request::instance()->ext();
如果希望支持多個(gè)偽靜態(tài)后綴,可以直接設(shè)置如下:
// 多個(gè)偽靜態(tài)后綴設(shè)置 用|分割
'url_html_suffix' => 'html|shtml|xml'
那么,當(dāng)訪問(wèn) http://serverName/Home/blog/3.pdf
的時(shí)候會(huì)報(bào)系統(tǒng)錯(cuò)誤。
如果要關(guān)閉偽靜態(tài)訪問(wèn),可以設(shè)置
// 關(guān)閉偽靜態(tài)后綴訪問(wèn)
'url_html_suffix' => false,
關(guān)閉偽靜態(tài)訪問(wèn)后,不再支持偽靜態(tài)方式的URL訪問(wèn),并且偽靜態(tài)后綴將會(huì)被解析為最后一個(gè)參數(shù)的值,例如:
http://serverName/index/blog/read/id/3.html
最終的id參數(shù)的值將會(huì)變成 3.html
。