隨著行動網路的普及,越來越多的web應用程式需要支援手機訪問,因此許多站點都會有一個專門的WAP站點,以方便用戶在行動裝置上存取。然而,透過URL造訪WAP網站的方式並不是很友好,URL通常會帶有「wap.php」等後綴,給使用者使用帶來了麻煩。本文將介紹一種將「wap.php」隱藏的方法,使WAP網站更加友善。
一、引言
thinkphp是一種開源的PHP框架,它以物件導向程式設計為基礎,重度依賴MVC設計模式,透過封裝ORM層,連接資料來源,快速開發web應用。對於需要支援WAP版面的thinkphp應用程式而言,隱藏「wap.php」是一種提高使用者存取體驗的有效方法。
二、思路分析
在thinkphp框架中,URL位址對應和路由規則是由核心路由元件負責的。因此,我們可以透過修改路由規則,隱藏「wap.php」後綴,達到WAP站點URL友善的目的。具體實作方法如下:
1.修改App/Conf/config.php檔案:
'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES' => array( 'wap' => 'Index/Wap/index', ':action' => 'Index/:1', ),
2.建立Wap模組,修改模組對應的Action:
class WapAction extends Action { public function _empty() { $this -> display('Index:index'); } public function index() { $this -> display(); } }
#三、實作步驟
1.建立Wap模組
在thinkphp中,一個應用程式可以搭建多個模組,一個模組是獨立的目錄,包含獨立的視圖和控制器。我們可以透過執行下列指令來建立Wap模組:
php thinkphp.php -m -a Index -s Wap
執行指令後,會在應用程式目錄下建立Wap目錄,並在該目錄下建立一個Index控制器。我們需要將該控制器重新命名為WapController.class.php。
2.修改App/Conf/config.php檔案
修改設定檔中的路由規則,將「wap」對應到Wap模組的Index控制器上。
'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES' => array( 'wap' => 'Wap/Index/index', ':action' => 'Index/:1', ),
此時,當使用者造訪「http://example.com/wap」時,將會呼叫Wap模組的Index控制器的indexAction方法。
3.修改Wap模組控制器
修改Wap模組中的Index控制器,以實作將「wap.php」後綴隱藏。首先,我們需要透過_empty()方法來攔截所有不存在的方法。當Wap模組中不存在指定的方法時,就會執行_empty()方法中指定的結果,我們可以傳回呈現指定的範本檔案。例如:
class WapController extends Controller { protected $is_wap = true; public function _empty() { $this -> display('Index:index'); } public function index() { $this -> display(); } }
當某個方法不存在時,_empty()將被執行並呈現Index:index範本。
四、總結
透過修改thinkphp框架的路由規則和模組控制器,我們可以將「wap.php」後綴隱藏,提高WAP站點URL的友好度,從而提升使用者體驗。透過攔截不存在的方法,我們還可以實現錯誤處理和防止站點被爬蟲抓取的目的。
以上是thinkphp怎麼隱藏wap.php的詳細內容。更多資訊請關注PHP中文網其他相關文章!