在我們寫任何的網站的時候,都會涉及到友好的404頁面的顯示,今天我就遇到這樣的問題,對于一個對這些了解不是很多的我,要獨立解決問題.
我用的是PHP的thinkphp框架,當時不知道為什么我沒有在網上搜索“thinkphp中404頁面顯示”等類似這樣的關鍵字,而是輸入了類似“wampserver設置404頁面顯示”這樣的關鍵字,在晚上找到了很多的內容,解決方法都是修改工程目錄下的.htaccess文件,對這個文件我了解的不多,甚至說不知道它是干什么的,該文件的功能或許是這樣的:該文件可以叫分布式配置文件,主要是配置文件,提供了針對目錄改變配置的方法,即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件, 以作用于此目錄及其所有子目錄,作為用戶,所能使用的命令受到限制,管理員可以通過Apache的AllowOverride指令來設置,這樣的理解我還能接受,這樣的理解是從一篇日志上看到的,對其更詳細的介紹請點擊博文末尾的鏈接.
對404頁面的問題解決的方法就是在.htaccess添加代碼:
ErrorDocument 404 /errors/error.html error.htmnl就是對404處理的頁面
運行項目,發現返回404錯誤的時候,沒有顯示出error.html文件內容,難道沒有執行嗎?下面再用一下的語句測試一下:
ErrorDocument 404 “404 file not found” 引號里的內容就是對404處理的顯示結果,當我們執行項目的時候發現會顯示出“404 file not found”這樣的字樣,說明我們這幾句話是被調用了的,然后陷入了疑惑的狀態,難道是自己的其他配置有問題,最后在網上繼續尋找問題的答案,問題也沒有解決,這樣的策略那就不能考慮了(ps:據說是thinkpnp自身的原因,解決方案就是修改/ThinkPHP/Tpl/ThinkException.tpl.php
在html源碼頭部追加<?php header('HTTP/1.1 404 Not Found'); ?>),這個我還沒有測試,所以這個方法大家可以嘗試一下。
下面說下一種解決方法:
就是在Action中創建一個ErrorAction.class.php模塊,在里面寫過_Empty()方法,具體代碼如下:
- <?php
- class EmptyAction extends Action {
- public function _empty(){
- header("HTTP/1.0 404 Not Found");//這個是必須添加的,這個就是返回404錯誤
- $this->display('Error:error');//error是存放在Error文件夾中的error.html(404頁面),
- }
- }
- ?>
有這個后僅僅只能解決所謂的一級域名的錯誤問題,要是解決二級域名等問題,需要解決的方法就是在CallAction.class.php和JasonAction.class.php以及CallAction等所有能出現在url中的模塊里添加如下代碼:
- public function _empty(){
- header("HTTP/1.0 404 Not Found");//這個是必須添加的,這個就是返回404錯誤
- $this->display('Error:error');//error是存放在Error文件夾中的error.html(404頁面),
- }
方可實現當輸入錯誤的url時,顯示404頁面.
新聞熱點
疑難解答
圖片精選