開啟網頁顯示404是怎麼解決(網站404頁面怎麼做)
一個好的網站,擁有一個好的 404頁面 是標配。
為何要有 404頁面?如何設定一個 404頁面?
why 404 pages?
在本地,比如我開啟 localhost/fuck.htm(該檔案不存在),HTTP 返回 404 Not Found,同時頁面展示如下:
使用者體驗很差有木有!更重要的是,如果沒有 404頁面,會影響 SEO。
為什麼說會影響 SEO 呢?
當你的網站有些頁面地址(路徑)改變了。或者內容被刪除了,導致原地址訪問本頁面時,提示頁面不存在。比如說你網站改版,也會導致很多原來存在的頁面,訪問的時候提示頁面被刪除或不存在。這個時候就會產生很多死連結,當一個網站死連結過多的時候,對搜尋引擎是非常不友好的,影響你的網站整體權重,也對使用者體驗很不好。
這時候就需要一個 404 頁面。這個頁面是所有死連結的著陸頁,所有打不開的頁面都會跳轉到這個 404 頁面。這個頁面包含了你的主要的網站欄目導航。使用者在這個頁面可以很方便的選擇繼續瀏覽你網站別的內容。404 頁面設定好以後,通過站長工具狀態碼檢,會返回 404 狀態碼。如果返回狀態碼是 200 說明是設定錯誤(這樣結果會造成搜尋引擎有可能認為你網站有大量的重複內容,從而網站權重被降),雖然對訪問的使用者而言,HTTP 狀態碼究竟是 "404" 還是 "200" 並沒有什麼區別,但對於搜尋引擎則是相當重要的。
404 說白了就是在當前頁面上做一個返回首頁或者其他頁面的一個連結,這個連結一方面告訴搜尋引擎我們這個頁面已經無效了請 "蜘蛛" 再去爬一次首頁吧!這樣當蜘蛛爬到死連結(404頁面)那裡的時候就會自動跑到首頁並進行索引,也就是說 404 的出現不僅僅讓搜尋引擎的資料庫更快的刪除掉這些死連結,還能讓蜘蛛更加勤快的認識新網站,可以說是一舉兩得。
set 404 pages
筆者總結了兩種在 APACHE 中設定 404頁面的方法。當然首先你得寫好一個 404頁面,畢竟本質上這也是個 html 頁面,內容就可以集思廣益了,比方說可以寫個小遊戲啊,展示網站其他內容,或者說 404公益,等等。這裡我寫了個檔案把它命名為 404.htm,放在本地伺服器的根目錄下(localhost/404.htm)。
方法一 —— .htaccess 設定:
第一種方法是在 .htaccess 檔案中進行相關設定。
什麼是 htaccess?概述來說,htaccess 檔案是 Apache 伺服器中的一個配置檔案,它負責相關目錄下的網頁配置。通過 htaccess 檔案,可以幫我們實現:網頁 301 重定向、自定義 404 錯誤頁面、改變副檔名、允許/阻止特定的使用者或者目錄的訪問、禁止目錄列表、配置預設文件等功能。
關於 htaccess 檔案的更多內容可以參考文末連結或者自行谷歌百度。
這檔案是不是很奇怪,木有檔名,其實也不奇怪,用過 Git 的話你也肯定見過 .git 資料夾。但是本地伺服器下沒有該檔案啊?在 windows 下從別的檔案強制改名轉換的話,會提示 "必須鍵入檔名",so 我們可以用命令列。
開啟 cmd,cd 到指定目錄後,用如下命令便可建立一個 .htaccess 檔案:
echo.>.config
前面說了,htaccess 檔案負責相關目錄下的網頁配置,所以伺服器下的任何資料夾都可以有一個自己的 htaccess 檔案。這裡我們把它放在根目錄下。
開啟該檔案,將以下內容複製進去:
ErrorDocument 404 /404.htm
這時再開啟 localhost/fuck.htm,頁面內容便會變成 404.htm 的內容,返回 404 狀態碼,URL 卻不會變化。
(PS:如此這般我本地便已經生效,但是有些文章指出還需要在 conf 檔案下做一些修改,如果沒有生效,可以參考下 這裡)
這裡有幾點需要注意:
- 一是不能把以上
ErrorDocument 404 /404.htm
中的斜槓漏掉,if so 404 頁面會顯示字串 "404.htm" - 其二是路徑不能用絕對地址,比如說用 “http://localhost/404.htm”,這樣頁面開啟無效的連結後,會跳至 “http://localhost/404.htm” 的地址(改變 URL),返回狀態碼 200,這不僅影響站長工具的檢查結果,而且影響 SEO 的收錄
- 其三是不要把 404 錯誤直接轉到網站首頁,這將影響網站的收錄。有些人可能會有疑惑,搞什麼 404頁面,404 的時候直接轉到網站根檔案不是更好,還能給首頁導量,naive 啊,搜尋引擎也不是吃素的,它會認為你這是 "欺騙",從而就不待見你了。
- 如果 IE 還是跳不過去,那肯定是你的 404 頁面內容太少了,至少需要 512 b(位元組) 才能讓 ie "臣服",認為你的 404 頁面還是有誠意的
方法二 —— vhosts 設定:
假設你跟樓主一樣設定過 vhosts。(如果沒有,歡迎參考 WampServer下如何實現多域名配置)
接下去就很簡單了,開啟 vhosts 檔案(比如我的路徑 /wamp/bin/apache/Apache2.2.21/conf/extra/httpd-vhosts.conf),修改如下:
DocumentRoot "c:/wamp/www" ServerName localhost ErrorDocument 404 /404.htm
要注意的點同 htaccess 設定要注意的一致。
總結
404 頁面是一個成熟的網站必須要有的東西,主要有兩個作用,利於使用者體驗以及 SEO。在 apache 中有兩種設定方式,htaccess 和 vhosts,某些文章指出儘量使用後者,前者比較耗費資源。設定中要注意的點請參考第二小節。